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

---------------------
作者:HaHa_Sir
来源:CSDN
原文:https://blog.csdn.net/HaHa_Sir/article/details/79277788
版权声明:本文为博主原创文章,转载请附上博文链接!

mybatis中参数为list集合时使用 mybatis in查询的更多相关文章

  1. mybatis中使用懒加载实现一对多复杂查询

    1.包结构 2.pom配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  2. mybatis中传入一个List集合作为查询条件的参数

    如果有一个查询参数有多个,用一个List集合传进去,这个mapper文件可以这么写 <select id="queryList04" resultType="map ...

  3. Mybatis中 Integer 值为0时,默认为空字符串的解决办法。

    需求是查询级别为0的用户 User对象里的level字段的值为0,查询时居然没有查到为level为0的用户. <select id="selectSelective" par ...

  4. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_7 Mybatis中参数的深入-使用实体类的包装对象作为查询条件

    pojo对象就是实体类 综合查询-实体类包装起来做查询 新建实体类QueryVo 提供一个User对象属性,并生成getter和setter 测试 修改dao接口中的返回类型为List<User ...

  5. mybatis中Oracle及mysql插入时自动生成主键以及返回主键

    mysql的方式: 方式一: useGeneratedKeys="true" keyProperty="id" 方式二: <selectKey keyPr ...

  6. 解决mysql的in条件中参数是带引号的字符串的时候查询失效

    原文链接:https://blog.csdn.net/u014520745/article/details/54091256

  7. MyBatis 中传递多个参数的 4 种方式

    方式 1 :封装成对象入参  #{对应实体类的属性} //UserMapper.java 接口 /** * 多条件查询:根据用户名称(模糊查询)和用户角色查询用户列表(参数:对象入参) * @para ...

  8. Postman:传递的参数是List类型时 传参格式的写法

    Postman传递的参数是List类型 实体类中引用了一个List,泛型为其他实体类 参数是List集合时,Postman中参数格式如下图所示: 有不明白的地方,欢迎留言

  9. MyBatis中映射器Mapper概述

    MyBatis真正强大之处在于它的映射器.因为它异常强大并且编写相对简单,不仅比传统编写SQL语句做的更好并且能节省将近95%的代码量 XML中顶级元素汇总 cache: 给定命名空间的缓存配置 ca ...

随机推荐

  1. kafka如何实现高并发存储-如何找到一条需要消费的数据(阿里)

    阿里太注重原理了:阿里问kafka如何实现高并发存储-如何找到一条需要消费的数据,kafka用了稀疏索引的方式,使用了二分查找法,其实很多索引都是二分查找法  二分查找法的时间复杂度:O(logn) ...

  2. Windows 文件过滤驱动经验总结

    Windows 文件过滤驱动经验总结作者:sinister 本文转载自驱动开发网 看了 ChuKuangRen 的第二版<文件过滤驱动开发教程>后,颇有感触.我想,交流都是建立在平等的基础 ...

  3. rtsp 客户端请求视频的时候支持输入用户名和密码的格式

    rtsp://[<username>[:<password>]@]<server-address-or-name>[:<port>][/<path ...

  4. wx.request 请求与django

    wx.request 1.wx.request相当于ajax请求,和django后台进行交互 官方文档:https://developers.weixin.qq.com/miniprogram/dev ...

  5. css3中的盒子模型

    1.示例一 实现左右布局,左侧宽度200px,右侧自适配 代码如下: <!DOCTYPE html> <html lang="en"> <head&g ...

  6. tensorflow 笔记 15:如何使用 Supervisor

    如何使用Supervisor在不使用Supervisor的时候,我们的代码经常是这么组织的 variables ... ops ... summary_op ... merge_all_summari ...

  7. Android Studio运行Hello World程序

    老的神舟本本装上了深度LINUX了...应该是基于ubuntu的,安装软件用的apt-get而不是yum 想重装学下android原生开发,官网下载了android studio, 发现不用FQ也能下 ...

  8. windows中设置php环境变量

    1.我的电脑->右键(选择我的属性) 2.点击高级设置 3.点击环境变量 4.在系统变量中找到Path 点击 5.找到php.exe的文件目录,添加到path中 6.php -v 显示版本,表示 ...

  9. Airflow使用指南

    1.只执行单个任务 将downstream和recursive按钮的点击状态取消,然后点击clear,最后点击run

  10. squid4

    主机上的squid一直是傻瓜型使用,yum安装.默认配置.千年不动.突然漏扫出来3.X版本不能用了,搜了下,得升4.神奇的发现centos7的源(阿里源)里面竟然最高只有3.网上搜使用yum装的也都是 ...