MyBatis 动态SQL foreach 循环拼接separator使用问题

在使用mybatis动态SQL的时候,遇到了一个疑惑:

collection集合中集合长度为0和1的问题,是否会导致sql语句报错

于是测试了一下(0肯定会报错),发现集合长度为1的时候是不会报错的,为什么会觉得1会报错?因为有separator分隔符

究竟这个分隔符是在什么时候插入的,如果是在遍历第一次集合的时候插入,那么整个sql语句就会多一个逗号,反之,sql语句是正确的

 

 

 

 发现这是可以测试成功的,也就是说,在集合为1的情况下,动态sql在底层的时候应该会自动帮我们把separator去掉,保证sql语句不报错;

又或者是说,在集合大于1的情况下才会激活separator这个分隔符的功能。

 

posted @ 2020-08-02 13:14  kidnap  阅读(7805)  评论(0编辑  收藏  举报