Mybatis中的in查询

130 阅读1分钟

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)