1 起因
实际项目中,往往会用到批量查询,如何利用Mybatis实现SQL中的in查询成为很多程序员隔一段时间必重新搜索一次的关键词
2 解决方案
利用Mybatis中的collection即可
collection是个好东西
废话不多说,直接上代码
select * from t_test where id in
<foreach collection="projectIds" item="id" index="index" open="(" separator="," close=")">
#{id}
</foreach>
需要注意以下关键点:
- collection中的内容为实际参数中的数组,如果参数是个map或者对象,就要用例如paramObject.ids这种方式
- item中的内容为数组中的单个元素
- index为数组索引,一般用不到
- open,separator, cloes分别为开始符号,间隔符号,结束符号。其中open和cloes只会出现一次,例如(1,2,3),不是(1),(2),(3)