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.引入自定义命名空间,允许自定义语句级元素.脚本级 ...
随机推荐
- 题解 洛谷 P4695 【[PA2017]Banany】
考虑用动态点分治来解决像本题这样带修的树上路径问题. 首先对原树进行点分治,建出点分树,在点分树每个节点上用动态开点线段树来维护以该节点为起点,到其点分树子树中每个节点的利润. 查询时只需在点分树上当 ...
- WebApiClientCore简约调用百度AI接口
WebApiClientCore WebApiClient.JIT/AOT的netcore版本,集高性能高可扩展性于一体的声明式http客户端库,特别适用于微服务的restful资源请求,也适用于各种 ...
- .NET Core 发布到 IIS
①右键项目->属性 将生成配置为Release ②右键项目->重新生成 ③提示生成成功后,右键项目->发布 点击新建,-> 这一步可以选择文件系统, 也可以选择IIS FT 以 ...
- 关于页面布局中,如何让一个div水平和垂直居中的五个方案
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 解决智慧城市发展困扰:Web 3D 智慧环卫 GIS 系统
前言 智慧环卫,依托物联网技术与移动互联网技术,对环卫管理所涉及到的人.车.物.事进行全过程实时管理,合理设计规划环卫管理模式,提升环卫作业质量,降低环卫运营成本,用数字评估和推动垃圾分类管理实效.智 ...
- 浅谈CSRF(Cross-site request forgery)跨站请求伪造
本文目录 CSRF是什么 CSRF攻击原理 CSRF攻击防范 CSRF是什么 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack” ...
- 数据结构C语言实现----树
树的基本知识点 树的定义 树的ADT(抽象数据类型) 树的储存结构 二叉树的定义 二叉树的储存结构 遍历二叉树 二叉树的建立 二叉树的ADT typedef struct BiTNode { Elem ...
- animation动画汇总(一阶段项目)
animation 属性 动画属性: 1.animation-name:规定需要绑定到选择器的 keyframe 名称. 2.animation-duration:规定完成动画所花费的时间,以秒或毫秒 ...
- layer弹窗插件留言提交
function msgShow(getname,getuserid){ layer.open({ type: 1 //此处以iframe举例 ,title: '收件人:'+getname+'(ID: ...
- Flask+微信公众号开发(接入指南)
目录 一.注册公众号 二.启用开发者 三.配置服务器配置 四.开发自己的需求 五.写在最后 一.注册公众号 具体的注册过程,根据官方文档一步一步来即可.这里需注意的是订阅号还是服务号:有些比较好的开发 ...