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


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

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

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

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

 

 

 

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

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM