通过阅读本文你可以更好的理解两个知识点:
1.#{}与${}在实际项目中的使用,避免在项目中使用不当造成不可预知的Bug;
2.MySQL中in里面如果是字符串的话,为什么只取第一个对应的数据,eg: in (“5,6,7”);
------------------------------------------------------------------------------------------------------------
快过年了,项目决定年后上线,在修Bug阶段,在Bug解决后开始当水手划水了,然后复习了下MyBatis的动态SQL的知识,无意中看到一个大佬写的代码,发现和我们平常写的方式有点不同,觉得这样写会产生问题,于是乎开启了思考。正常情况下,我们在用in的时候,参数都用List或者一个Vo对象(里面有一个List),然后用foreach的方式循环取值,但是这个大佬居然in里面是String类型的参数,这样写能查出值吗?
通常的写法:
注:stockInBands是vo对象中的一个List类型的属性。