foreach

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hao.mapper.UserMapper"><select id="findByCondition" parameterType="user" resultType="user">select * from user<where><if test="id!=0">and id=#{id}</if><if test="username!=null">and username=#{username}</if><if test="password!=null">and password=#{password}</if></where></select><select id="findByIds" parameterType="list" resultType="user">select * from user<where><foreach collection="list" open="id in(" close=")" item="id" separator=",">#{id}</foreach></where></select>
</mapper>

测试

 @Testpublic void test1() throws IOException {InputStream stream = Resources.getResourceAsStream("SqlMapConfig.xml");SqlSession sqlSession = new SqlSessionFactoryBuilder().build(stream).openSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);List<Integer> ids=new ArrayList<>();ids.add(1);ids.add(2);List<User> byIds = mapper.findByIds(ids);System.out.println(byIds);}

观看打印的日志

-collection 表示要做foreach循环的对象
- item 表示集合中每一个元素或者该集合的对象,支持对象点属性的方式获取属性。
- index 表示循环的下标,从0开始
- open 表示以什么开始
- separator 表示每次进行迭代之间以什么符号作为分隔符
- close表示以什么结束

Mybatis映射文件动态SQL语句-02相关推荐

  1. Mybatis映射文件动态SQL语句-01

    因为在很多业务逻辑复杂的项目中,往往不是简单的sql语句就能查询出来自己想要的数据,所有mybatis引入了动态sql语句, UserMapper.xml <?xml version=" ...

  2. Mybatis配置及动态SQL语句标签

    #Mybatis resources: ###db.properties: jdbc.driver = com.mysql.jdbc.Driver jdbc.url = jdbc:mysql://lo ...

  3. Mybatis 中update动态SQL语句

    Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作: <select id="findBySrcId" resultMap="ent ...

  4. MyBatis之五:动态sql语句

    在mybatis 3 或以上的版本提供了4类标签,分别是:if,choose(when,otherwise),rim(where,set),foreach.接下来将分别介绍这几种标签的具体用法,映射x ...

  5. Mybatis—动态SQL语句与逆向工程

    Mybatis动态SQL语句与逆向工程 MyBatis动态SQL语句与逆向工程 1.动态SQL语句 1.1.动态SQL是什么 1.2.动态SQL有什么用 1.3.基于XML的实现 1.3.2.接口文件 ...

  6. Mybatis第三天动态Sql语句、XML中一对多、多对一、多对多该怎么写

    Mybatis第三天 Mybatis中使用unpooled配置连接池原理分析 Mybatis中使用pooled配置连接的原理分析 Mybatis中的事务原理和自动提交设置 Mybatis中的动态sql ...

  7. 02JavaWeb之MyBatis详解、SqlSession执行、mapper代理执行、动态SQL语句、注解开发、resultMap、resultType、多参数传递

    MyBatis MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发,它封装了JDBC大部分的操作. MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由 ...

  8. 【MyBatis笔记】03-映射文件的sql语句中 #{} 和 ${} 的区别以及实现模糊查询

    映射文件的sql语句中 #{} 和 ${} 区别以及实现模糊查询 sql 语句中的 #{} #{} 模糊查询错误用法 #{} 实现模糊查询 sql 语句中的 ${} ${} 实现模糊查询 #{} 与 ...

  9. 03-映射文件的sql语句中 #{} 和 ${} 的区别以及实现模糊查询

    映射文件的sql语句中 #{} 和 ${} 区别以及实现模糊查询 目录 sql 语句中的 #{} #{} 模糊查询错误用法 #{} 实现模糊查询 sql 语句中的 ${} ${} 实现模糊查询 #{} ...

最新文章

  1. ubuntu 安装pytorch
  2. 全球及中国成人病袍行业专项调研评估及未来发展趋势预测报告2021-2027年版
  3. 全栈工程师之路(二)—— JavaScript(网页前端脚本语言)
  4. Linux fork() 和 vfork()
  5. toString() 和 强制类型转换 (String)
  6. 使用Jenkins搭建持续集成环境的方法(三)
  7. ng-深度学习-课程笔记-13: 目标检测(Week3)
  8. cocos2d-x之物理世界(创建物理世界)
  9. Windows7系统如果安装升级IE11浏览器
  10. DOS bat 的注释方法
  11. 广义线性混合模型GLMM
  12. 外贸常用术语_外贸常用术语总结.doc
  13. Android版本和SDK版本
  14. 迪士尼无限3.0连接服务器,迪士尼无限3period;0BUG问题解决 | 手游网游页游攻略大全...
  15. google的高级搜索语法说明
  16. 理解 Linux 网络栈:Linux 网络协议栈简单总结
  17. 【KV260】K26 SOM烧写脚本
  18. 南理工紫金单片机课程设计
  19. 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结
  20. 最新整理Q萌回合手游/青灯奇缘+GM授权后台

热门文章

  1. Angular学习(7)- 模板2
  2. Immutable 想破坏它也没办法
  3. mysql中xml类型_使用 SQLXML 数据类型
  4. 安卓虚拟linux系统教程,在Linux上模拟Android应用程序的3种方法 | MOS86
  5. oracle10g数据库热备份,Oracle10g数据库冷备份脚本文件
  6. mit 6.824 Distributed System
  7. python爬虫脚本ie=utf-8_python脚本-共享文件爬虫
  8. oracle中lead函数,oracle lead()函数 | 学步园
  9. 道格拉斯算法 java_道格拉斯-普克算法的java的实现代码如下
  10. jupyter跑Java,C++/C,R