导言

使用mapper.xml文件来存储和执行sql语句是Mybatis框架中重要的应用。在mapper.xml文件中对List数据的循环遍历较为普遍和常用,而两层或多层循环是大家不常用的。下面简单介绍一下吧!

从单层循环说起

mapper.java文件中的getData函数 :

 public getData(@("param") List<String> param);

mapper.xml中getData的sql :

 <select id="getData">select * from table t where t.id in<foreach item="item" index="index" collection="dataList" open="(" close=")" separator=",">#{dataList}</foreach></select>

分析 : 
getData传送过来的是一个List类型的数据,因此需要单层循环即可

两层循环

info类 :

public class Info{public String name;public List<String> ids;
}

mapper.java中用到info类的函数 :

 public getData(@("param") List<Info>);

mapper.xml中getData的sql :

<select id="getData">select * from table t where t.id in<foreach item="item" index="index" collection="dataList"><foreach item="idItem" index="index" collection="item.ids" open="(" close=")" separator=",">#{idItem}</foreach></foreach></select>

注意 :

collection=”item.ids” 为多层循环的关键

后序

以上为Mybaits框架mapper.xml文件使用多层循环一个方面。对于处理map等更为复杂数据的处理,笔者还不知。等待高手指点吧!

Mybatis中mapper文件中的两层循环相关推荐

  1. 【Mybatis】Mapper文件中sql不等于的写法

    [Mybatis]Mapper文件中sql不等于的写法 认识误区:在xml文件中,是 不能直接使用 < .>.& 的.因为会被语法检查而报错. 正确使用的两种方法 1. 第一种:转 ...

  2. Mybatis的mapper文件中涉及大于号小于号等特殊符号使用

    什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBati ...

  3. mybatis的Mapper文件中的大于小于号,为什么要转成“lt ;”、“gt ;”,转义后的lt、gt又代表什么?

    为什么的Mapper文件中的"<".">" 要转成"&lt ;"."&gt ;" 问题分析 ...

  4. mybatis中mapper文件中的动态sql语句

    有时候在检索时,用户提供的数据不一样多,我们很难使用静态的sql语句进行判别,所以这个时候需要使用动态的sql语句 这里主要针对Mapper.xml文件中的sql语句,笔者在下面所有的例子中只提供了M ...

  5. 去除idea中mapper文件中的黄色背景两种方法

    一共提供两种方法: 第一种是直接取消验证颜色 第二种是连接数据库设置方言 原效果图: 第一种 步骤:settings->Editor->Inspection,然后取消以下两个勾选 下一步: ...

  6. 如何解决Mybatis里mapper文件中关于不能用大于小于号

    From: https://blog.csdn.net/qq_38659629/article/details/80408185 用<![CDATA[   ]]>标识 比如:<![C ...

  7. mybatis的mapper文件中,sql插入语句

    sql语句没有对字段判断 <insert id="insert">insert into student (id, name, age,money, cla_code, ...

  8. idea查看项目pid_intellij idea 插件开发--快速定位到mybatis mapper文件中的sql

    intellij idea 提供了openApi,通过openApi我们可以自己开发插件,提高工作效率.这边直接贴个链接,可以搭个入门的demo:http://www.jianshu.com/p/24 ...

  9. MyBatis mapper文件中使用常量

    MyBatis mapper文件中使用常量 Java 开发中会经常写一些静态常量和静态方法,但是我们在写sql语句的时候会经常用到判断是否等于 //静态类 public class CommonCod ...

最新文章

  1. 某单位招聘考试需要考核数学英语计算机,2010年10月自学考试电子商务网站设计原理试题...
  2. 说说你对 SVG 理解?
  3. php session 效率,大量php session临时文件带来的服务器效率问题
  4. Jquery.Validation表单验证
  5. if 与 while
  6. Twhirl's limit exceeded
  7. Python-sorted函数
  8. java海康摄像头添加人脸_java及opencv实现调用本地摄像头、网络摄像头完成人脸检测、人脸收集、人脸识别、性别识别...
  9. cad灯具图标_CAD图纸灯具图例
  10. PHPWAMP开机自启异常,服务器重启后Apache等服务不会自启的原因分析
  11. 瑞星杀毒软件网络版介绍
  12. Ubuntu中解决机箱前置耳机没声音
  13. Android保存图片到系统图库并通知系统相册刷新
  14. sudo apt-get update 出现Reading package lists… Error!
  15. Visual paradigm试用版绘制ER图时如何去水印
  16. 电影推荐系统、数字识别、垃圾邮件参考文献
  17. 怎么计算机求和错误的,《表格计算求和错误怎么办》 为什么EXCEL公式求和会有错误...
  18. 共模电感 | 磁芯选型
  19. vue3之定义数据(Ref全家桶)
  20. PCIe TLP详解

热门文章

  1. 14.结构体struct.rs
  2. 动态加载NT驱动(源码)
  3. IntelliJ IDEA 2019.3要起飞了,主要解决这些痛点...
  4. Java虚拟机类加载机制——案例分析
  5. Facebook如何将QUIC应用于数十亿流量传输
  6. LiveVideoStack线上分享第四季(八):实时远程医学影像服务质量保障与网络优化...
  7. 超高清视觉体验需要哪些技术栈?
  8. LiveVideoStack线上交流分享 ( 七) —— 舞台现场直播技术实践
  9. 李幸原:看好实时音视频在教育与医疗的前景
  10. 第二章 Spark RDD以及编程接口