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传值的更多相关文章

  1. mybatis中为sql中传值#{}和${}的区别

    在mybatis中,配置文件中sql的值,用#{}表示,例如: <select id="getTeacher" resultType="Teacher"& ...

  2. Mybatis中使用循环遍历

    Mybatis中传参数的方法 1.使用注解绑定,mapper.xml 对应方法 不需要指定 parameterType,(推荐使用注解绑定方式) 方法接口: List<CalculateIdea ...

  3. 谈一下思考,关于mybatis中<foreach collection="list">中list得来的原因 没看到官方说明

    <foreach> 是在sql语句中进行多个id查询 时用到的,因为mybatis代替jdbc和hibernate, 使用 在xml文件中编写sql语句,这是一个标签文件.然后在 dao层 ...

  4. Mybatis中由于${}直接注入引发的问题

    一.问题引入 我们先来看这段代码,我想从取值为${category}的表中查询全部信息. @Mapper public interface CategoryMapper { @Select(" ...

  5. [原创]关于mybatis中一级缓存和二级缓存的简单介绍

    关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...

  6. 记录一次bug解决过程:mybatis中$和#的使用

    一.总结 mybatis中使用sqlMap进行sql查询时,经常需要动态传递参数.动态SQL是mybatis的强大特性之一,也是它优于其他ORM框架的一个重要原因.mybatis在对sql语句进行预编 ...

  7. mybatis中#{}与${}的差别(如何防止sql注入)

    默认情况下,使用#{}语法,MyBatis会产生PreparedStatement语句中,并且安全的设置PreparedStatement参数,这个过程中MyBatis会进行必要的安全检查和转义. # ...

  8. mybatis 中的where标签

    mybatis中的where标签可以去除 开头的 and 或者 or 但是放在后面的不行 失败的: <select id="countNotesByParam" parame ...

  9. Mybatis中SqlMapper配置的扩展与应用(3)

    隔了两周,首先回顾一下,在Mybatis中的SqlMapper配置文件中引入的几个扩展机制: 1.引入SQL配置函数,简化配置.屏蔽DB底层差异性 2.引入自定义命名空间,允许自定义语句级元素.脚本级 ...

随机推荐

  1. C++语法小记---异常处理

    异常处理(C语言) 异常是对代码中可以预知的问题进行处理:代码中不可以预知的问题叫Bug: if () { ... } else { ... } setjmp和longjmp #include < ...

  2. 正在找工作的同学看过来,zozo最新的java面试题总会,学会月薪3万起!!!

    引言 为正在找工作的同学提供些许帮助,话不多说直接上题. 关注后私信我[资料]即可免费获取! 关注后私信我[资料]即可免费获取! 关注后私信我[资料]即可免费获取! 关注后私信我[资料]即可免费获取! ...

  3. MacOS入门

    原文池建强的blog 对普通用户来说,用好Mac主要有三点: 1.理解OSX的基本结构和特点 2.掌握多手势和快捷键(少量即可,多多益善) 3.用好工具 一.理解OSX的基本结构和特点 Mac OS ...

  4. KMP算法图解

    字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD" ...

  5. Python os.fchmod() 方法

    概述 os.fchmod() 方法用于改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限.高佣联盟 www.cgewang.com Unix上可用. 语法 fchmo ...

  6. PHP jdtojulian() 函数

    ------------恢复内容开始------------ 实例 把儒略历法的日期转换为儒略日计数,然后再转换回儒略历法的日期: <?php$jd=juliantojd(6,20,2007); ...

  7. 5.19 省选模拟赛 T1 小B的棋盘 双指针 性质

    LINK:小B的棋盘 考试的时候没有认真的思考 导致没做出来. 容易发现 当k>=n的时候存在无限解 其余都存在有限解 对于30分 容易想到暴力枚举 对称中心 然后 n^2判断. 对于前者 容易 ...

  8. Spring Cloud及微服务简介

    最近在看微服务编排的东西,看到一篇入门博客,私以为不错,再次分享下:https://blog.csdn.net/w05980598/article/details/79007194 什么是微服务 微服 ...

  9. SpringCloud生产消费者

    SpringCloud生产消费者 生产者与消费者 上一篇文章介绍了Euarka的搭建,SpringCloud服务注册中心 本篇文章,我们搭建俩个服务,生产者服务与消费者服务. 本文就以电商系统为例:服 ...

  10. 埋在MySQL数据库应用中的17个关键问题!

    作者:扎瓦陈序元 来源:https://blog.csdn.net/weixin_42882439 MySQL的使用非常普遍,跟MySQL有关的话题也非常多,如性能优化.高可用性.强一致性.安全.备份 ...