mybatis中参数为list集合时使用 mybatis in查询

Java 专栏收录该内容
122 篇文章 1 订阅
mybatis中参数为list集合时使用 mybatis in查询

一、问题描述
mybatis sql查询时,若遇到多个条件匹配一个字段,
sql 如:
 select * from user where id in ('23','45','34')

, 那么在 mybatis 中该如何实现呢?

二、实现思路
1、方法一: java中将满足条件的值 list 转成符合格式的 sql 字符串
2、方法二: mybatis的xml文件是基于 OGNL表达式 实现的,可以将满足条件的list直接传入到xml中,进行处理。


三、java转字符串
1、 依赖jar包:
commons-lang3-3.3.2.jar 

包 (没包,可以私信我)
2、 java中用StringUtils.join()方法操作
  List<String> idList=new ArrayList<String>();
		idList.add("1002");
		idList.add("6002");
		idList.add("3206");
		String ids = "'"+StringUtils.join(codeList,"','")+"'";  

3、 xml中如下:
select * from user where id in ( ${ids} )  <!-- 注意 “$” 不是 "#" -->


四、xml 对list进行遍历
1、假设满足条件list 如下:
 List<String> idList=new ArrayList<String>();
		idList.add("1002");
		idList.add("6002");
		idList.add("3206");


2、mybatis xml 中直接处理 list数据
select * from user where id in 
<foreach collection="idList" index="index" item="id" open="(" separator="," close=")">
		#{id}
</foreach>


3、关于mybatis xml中 <foreach>标签各个属性的作用 请参考: http://blog.csdn.net/aiyawalie/article/details/52954138


若有疑问可以联系我,谢谢!

  • 8
    点赞
  • 9
    评论
  • 21
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页

打赏

HaHa_Sir

讨饭啦!

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值