mybatis中参数为list集合时使用 mybatis in查询java
1、问题描述
mybatis sql查询时,若遇到多个条件匹配一个字段,
sql 如:
select * from user where id in ('23','45','34')sql
, 那么在 mybatis 中该如何实现呢?mybatis
2、实现思路
一、方法一: java中将知足条件的值 list 转成符合格式的 sql 字符串
二、方法二: mybatis的xml文件是基于OGNL表达式实现的,能够将知足条件的list直接传入到xml中,进行处理。.net
3、java转字符串
一、 依赖jar包:
commons-lang3-3.3.2.jar code
包 (没包,能够私信我)
二、 java中用StringUtils.join()方法操做
List<String> idList=new ArrayList<String>();
idList.add("1002");
idList.add("6002");
idList.add("3206");
String ids = "'"+StringUtils.join(codeList,"','")+"'"; xml
三、 xml中以下:
select * from user where id in ( ${ids} ) <!-- 注意 “$” 不是 "#" -->blog
4、xml 对list进行遍历
一、假设知足条件list 以下:
List<String> idList=new ArrayList<String>();
idList.add("1002");
idList.add("6002");
idList.add("3206");字符串
二、mybatis xml 中直接处理 list数据
select * from user where id in
<foreach collection="idList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>it
三、关于mybatis xml中 <foreach>标签各个属性的做用 请参考:http://blog.csdn.net/aiyawalie/article/details/52954138io