在使用mybatis動態SQL的時候,遇到了一個疑惑:
collection集合中集合長度為0和1的問題,是否會導致sql語句報錯
於是測試了一下(0肯定會報錯),發現集合長度為1的時候是不會報錯的,為什么會覺得1會報錯?因為有separator分隔符
究竟這個分隔符是在什么時候插入的,如果是在遍歷第一次集合的時候插入,那么整個sql語句就會多一個逗號,反之,sql語句是正確的
發現這是可以測試成功的,也就是說,在集合為1的情況下,動態sql在底層的時候應該會自動幫我們把separator去掉,保證sql語句不報錯;
又或者是說,在集合大於1的情況下才會激活separator這個分隔符的功能。