mybatis中参数为list集合时使用 mybatis in查询
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查询的更多相关文章
- mybatis中使用懒加载实现一对多复杂查询
1.包结构 2.pom配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...
- mybatis中传入一个List集合作为查询条件的参数
如果有一个查询参数有多个,用一个List集合传进去,这个mapper文件可以这么写 <select id="queryList04" resultType="map ...
- Mybatis中 Integer 值为0时,默认为空字符串的解决办法。
需求是查询级别为0的用户 User对象里的level字段的值为0,查询时居然没有查到为level为0的用户. <select id="selectSelective" par ...
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_7 Mybatis中参数的深入-使用实体类的包装对象作为查询条件
pojo对象就是实体类 综合查询-实体类包装起来做查询 新建实体类QueryVo 提供一个User对象属性,并生成getter和setter 测试 修改dao接口中的返回类型为List<User ...
- mybatis中Oracle及mysql插入时自动生成主键以及返回主键
mysql的方式: 方式一: useGeneratedKeys="true" keyProperty="id" 方式二: <selectKey keyPr ...
- 解决mysql的in条件中参数是带引号的字符串的时候查询失效
原文链接:https://blog.csdn.net/u014520745/article/details/54091256
- MyBatis 中传递多个参数的 4 种方式
方式 1 :封装成对象入参 #{对应实体类的属性} //UserMapper.java 接口 /** * 多条件查询:根据用户名称(模糊查询)和用户角色查询用户列表(参数:对象入参) * @para ...
- Postman:传递的参数是List类型时 传参格式的写法
Postman传递的参数是List类型 实体类中引用了一个List,泛型为其他实体类 参数是List集合时,Postman中参数格式如下图所示: 有不明白的地方,欢迎留言
- MyBatis中映射器Mapper概述
MyBatis真正强大之处在于它的映射器.因为它异常强大并且编写相对简单,不仅比传统编写SQL语句做的更好并且能节省将近95%的代码量 XML中顶级元素汇总 cache: 给定命名空间的缓存配置 ca ...
随机推荐
- kafka如何实现高并发存储-如何找到一条需要消费的数据(阿里)
阿里太注重原理了:阿里问kafka如何实现高并发存储-如何找到一条需要消费的数据,kafka用了稀疏索引的方式,使用了二分查找法,其实很多索引都是二分查找法 二分查找法的时间复杂度:O(logn) ...
- 【技术博客】MySQL和Django常用操作
MySQL和Django是搭建网站常用的配置之一,在此记录一下在Windows系统搭建网站时MySQL以及Django常用的操作. MySQL MySQL的SQL语句不区分大小写,推荐将保留字大写,数 ...
- 深度排序模型概述(一)Wide&Deep/xDeepFM
本文记录几个在广告和推荐里面rank阶段常用的模型.广告领域机器学习问题的输入其实很大程度了影响了模型的选择,因为输入一般维度非常高,稀疏,同时包含连续性特征和离散型特征.模型即使到现在DeepFM类 ...
- mysql5.7同步复制报错1060故障处理
mysql5.7同步复制报错故障处理 # 报错 1060,具体如下Last_Errno: 1060Last_Error: Coordinator stopped because there were ...
- Java13新特性 -- ZGC:取消使用未使用的内存
在JDK 11中,Java引入了ZGC,这是一款可伸缩的低延迟垃圾收集器,但是当时只是实验性的.号称不管你开了多大的堆内存,它都能保证在 10 毫秒内释放 JVM ,不让它停顿在那.但是,当时的设计是 ...
- c# Mono.Cecil IL方式 读MethodBody
using Kufen.Common.Definitions; using Mono.Cecil; using System; using System.Collections.Generic; us ...
- 使用Cloud Toolkit部署SpringBoot项目到服务器
由于我们经常发布项目到测试服,在测试服上调试一些本地无法调试的东西,所以出现了各种打包,然后上传.启动,时间都耗费在这无聊的事情上面了,偶然在网上看到IntelliJ IDEA有 Cloud Tool ...
- Vue NGINX Apache 404 问题解决
location ^~/html/dist { #alias /home/server/webapps/vuejs-admin/; index index.html; try_files $uri $ ...
- CSS选择子简明参考
Type Selector Example h1 { } Description Selects an HTML tag/element. Universal selector Example * { ...
- 在Eclipse中设置中文JavaDOC
参考: 在Eclipse中设置中文JavaDOC