Mybatis中List传值
Mybatis遇到List传值时常用方法。
1. List<E>,E为基本数据类型和String
Mapper类文件:
List<User> selectByIds(List<String> userList);
Mapper.xml文件:
<select id="selectByIds" parameterType="java.lang.String" resultType="com.example.demo.dto.User">
SELECT id,name,note from USER where id in
<foreach collection="list" separator="," open="(" close=")" item="id">
#{id}
</foreach>
</select>
测试结果:

2. List,E为Object对象
**2.1 不配合@param使用**
Mapper类文件:
List<User> selectUser1(List<User> userList);
Mapper.xml文件:
<select id="selectUser1" parameterType="java.util.List" resultType="com.example.demo.dto.User">
SELECT id,name,note from USER where id in
<foreach collection="list" separator="," open="(" close=")" item="user">
#{user.id}
</foreach>
</select>
测试结果:

2.2 配合@param使用,自定义参数名
Mapper类文件:
List<User> selectUser2(@Param("userList") List<User> userList);
Mapper.xml文件:
<select id="selectUser2" parameterType="java.util.List" resultType="com.example.demo.dto.User">
SELECT id,name,note from USER
where id in
<foreach collection="userList" separator="," open="(" close=")" item="user">
#{user.id}
</foreach>
</select>
测试结果:

3. Map<k,V>,V为List对象
3.1 不配合@param使用
Mapper类文件:
List<User> selectByMap1(Map<String,List<User>> paramMap);
Mapper.xml文件:
<select id="selectByMap1" parameterType="java.util.Map" resultType="com.example.demo.dto.User">
SELECT id,name,note from USER
where id in
<foreach collection="userMap" separator="," open="(" close=")" item="user">
#{user.id}
</foreach>
</select>
测试结果:

3.2 配合@param使用,自定义参数名
Mapper类文件:
List<User> selectByMap2(@Param("mapList") Map<String,List<User>> paramMap);
Mapper.xml文件:
<select id="selectByMap2" parameterType="java.util.Map" resultType="com.example.demo.dto.User">
SELECT id,name,note from USER
where id in
<foreach collection="mapList.userMap" separator="," open="(" close=")" item="user">
#{user.id}
</foreach>
</select>
测试结果:

Mybatis中List传值的更多相关文章
- mybatis中为sql中传值#{}和${}的区别
在mybatis中,配置文件中sql的值,用#{}表示,例如: <select id="getTeacher" resultType="Teacher"& ...
- Mybatis中使用循环遍历
Mybatis中传参数的方法 1.使用注解绑定,mapper.xml 对应方法 不需要指定 parameterType,(推荐使用注解绑定方式) 方法接口: List<CalculateIdea ...
- 谈一下思考,关于mybatis中<foreach collection="list">中list得来的原因 没看到官方说明
<foreach> 是在sql语句中进行多个id查询 时用到的,因为mybatis代替jdbc和hibernate, 使用 在xml文件中编写sql语句,这是一个标签文件.然后在 dao层 ...
- Mybatis中由于${}直接注入引发的问题
一.问题引入 我们先来看这段代码,我想从取值为${category}的表中查询全部信息. @Mapper public interface CategoryMapper { @Select(" ...
- [原创]关于mybatis中一级缓存和二级缓存的简单介绍
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- 记录一次bug解决过程:mybatis中$和#的使用
一.总结 mybatis中使用sqlMap进行sql查询时,经常需要动态传递参数.动态SQL是mybatis的强大特性之一,也是它优于其他ORM框架的一个重要原因.mybatis在对sql语句进行预编 ...
- mybatis中#{}与${}的差别(如何防止sql注入)
默认情况下,使用#{}语法,MyBatis会产生PreparedStatement语句中,并且安全的设置PreparedStatement参数,这个过程中MyBatis会进行必要的安全检查和转义. # ...
- mybatis 中的where标签
mybatis中的where标签可以去除 开头的 and 或者 or 但是放在后面的不行 失败的: <select id="countNotesByParam" parame ...
- Mybatis中SqlMapper配置的扩展与应用(3)
隔了两周,首先回顾一下,在Mybatis中的SqlMapper配置文件中引入的几个扩展机制: 1.引入SQL配置函数,简化配置.屏蔽DB底层差异性 2.引入自定义命名空间,允许自定义语句级元素.脚本级 ...
随机推荐
- 如果你还不知道如何控制springboot中bean的加载顺序,那你一定要看此篇
1.为什么需要控制加载顺序 springboot遵从约定大于配置的原则,极大程度的解决了配置繁琐的问题.在此基础上,又提供了spi机制,用spring.factories可以完成一个小组件的自动装配功 ...
- xctf-web fakebook
点join注册账号 进入view.php发现参数no存在sql注入,但是过滤了select关键字,用内联注释绕过 在users表的data字段发现了用序列化存储的用户信息 然后就卡在这里了....看了 ...
- C语言中对文件的读写的一些浅显理解
前述:基于上学期完成的数据结构的课程设计,对于老师的提出要求实现的基础上,自己在使用过程中发现每次打开程序都需要重新输入数据,于是便决定,将文件读写功能加入此次课程设计中,以下是我的一些心得和浅显理解 ...
- excel文件双击打开空白
excel文件双击打开之后进入软件,没有去读文件 一.现象描述 打开现象如下所示,只有excel模板,看不到excel中的表格模板. 二.想要打开文件 (1)在软件的文件--->打开--> ...
- type 创建类,赋予类\静态方法等
类方法 class ObjectCreator(object): pass @classmethod def testClass(cls): cls.temp = 666 print(cls.temp ...
- PHP rewind() 函数
定义和用法 rewind() 函数将文件指针的位置倒回文件的开头. 如果成功,该函数返回 TRUE.如果失败,则返回 FALSE. 语法 rewind(file) 参数 描述 file 必需.规定已打 ...
- PHP tanh() 函数
实例 返回不同数的双曲正切: <?php高佣联盟 www.cgewang.comecho(tanh(M_PI_4) . "<br>");echo(tanh(0.5 ...
- C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记!
今天我们继续来学习C语言的入门知识点 11. 作用域规则 任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问.C 语言中有三个地方可以声明变量: 在函数或块内部的局部变量 ...
- 2020牛客暑期多校训练营 第二场 K Keyboard Free 积分 期望 数学
LINK:Keyboard Free 我要是会正经的做法 就有鬼了. 我的数学水平没那么高. 三个同心圆 三个动点 求围成三角形面积的期望. 不会告辞. 其实可以\(n^2\)枚举角度然后算出面积 近 ...
- datagrip安装与破解
datagrip下载 从官网下载的dataGrip可以免费使用30天,如果已经破解过或者付费过的小伙伴可以跳过这个章节.对于未安装软件的小伙伴,博主这里收集了dataGrip的破解教程,扫描底部博主的 ...