2019独角兽企业重金招聘Python工程师标准>>>

在Mybatis的xml配置中使用集合,主要是用到了foreach动态语句。

foreach的参数:
foreach元素的属性主要有 item,index,collection,open,separator,close。
item表示集合中每一个元素进行迭代时的别名.
index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.
open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.
close表示以什么结束。

1. Mybatis生成select * from table where id in(1,2,...,n)语句的查询

我们一般的做法是在方法的参数处指定传入的参数名称,在xml中使用的时候,集合的名称要和方法的Param的名称一致,这样便于阅读和理解,然后是在对应的xml文件中使用foreach循环。

java代码如下:

public abstract List<Model> findByIds(@Param("ids")List<Integer> ids);

对应的xml代码如下:

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

2.Mybatis保存多条记录

我们同样是通过foreach的方法来实现,这里我们巧妙的利用了sql的语法规则用Mybatis的foreach动态语句来处理。

java代码:

public abstract void saves(@Param("tables")List<Model> tables);

xml代码:

insert into table(name,addtime) values
<foreach collection="tables" item="item" index="index" separator=",">  (#{item.name},#{item.addtime})
</foreach>

以上方法Mybatis会帮我们进行sql注入拦截,Mybatis如果采用#{xxx}的形式设置参数,Mybatis会进行sql注入的过滤。如果采用的是${xxx},Mybatis不会进行sql注入过滤,而是直接将参入的内容输出为sql语句。

转载于:https://my.oschina.net/fallow5/blog/632317

mybatis处理集合、循环、数组和in等语句的使用相关推荐

  1. myBatis的xml映射文件中传入list集合与数组做条件

    mybatis的xml映射文件中传入list集合与数组做条件 1.传list集合参数 1.1sql映射: <select id="queryDeptListByBankLevelAnd ...

  2. Scala语法(一) 基础语法(变量常量判断循环数组集合)

    前言 在前面的章节中, 我们介绍了如何在Eclipse内安装Scala环境. 本章开始, 我们将讲解下Scala的基本语法. PS: 1. 个人虽然没有想转Scala语言开发的思想, 但是近来Scal ...

  3. Java——集合转数组并对其进行遍历

    * A:集合的遍历* 其实就是以此获取集合中的每一个元素* B:案例* 把集合转成数组,可以实现集合的遍历* public Object[] toArray() 按适当顺序(从第一个到最后一个元素)返 ...

  4. 如何删除集合(数组)中指定的元素

    文章目录 如何删除集合(数组)中指定的元素## 1.首先删除数组中的元素,没有特定的api 2. list集合删除元素 如何删除集合(数组)中指定的元素## 1.首先删除数组中的元素,没有特定的api ...

  5. es6删除数组某一项_JavaScript:集合与数组,重要但你不知道的ES6数据类型

    全文共3313字,预计学习时长10分钟 图源:Unsplash Set(集合)对象类型于2015年在ECMAScript*规范中提出,可以在 Node.js和大部分浏览器中使用. *ECMA是Euro ...

  6. JavaScript:集合与数组,重要但你不知道的ES6数据类型

    全文共3313字,预计学习时长10分钟 图源:Unsplash Set(集合)对象类型于2015年在ECMAScript*规范中提出,可以在 Node.js和大部分浏览器中使用. *ECMA是Euro ...

  7. 督促自己——某客网编程题三道(Java)——字符串、集合、数组

    某客网编程题三道(Java)--字符串.集合.数组 第一题: 题目描述 找出字符串中第一个只出现一次的字符 输入描述: 输入几个非空字符串 输出描述: 输出第一个只出现一次的字符,如果不存在输出-1 ...

  8. java 中遍历双列集合_获取单列集合,双列集合,数组的Stream流对象以及简单操作...

    获取流对象 获取单列集合,双列集合,数组的流对象 单列集合获取流对象: 1.java.util.Collection接口中加入了default方法stream()获取流对象,因此其所有实现类均可通过此 ...

  9. php数组转java集合_php数组集合

    集合框架 集合框架 简介 集合的由来 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加, ...

  10. ArrayList集合和数组的区别

    集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 ArrayList的构造方法和添加方法: public ArrayList() 创建一个空的集合对象 ...

最新文章

  1. python定义一个字典并遍历字典中的键和值_python字典操作总结
  2. 心得体悟帖---12、志向还是太短浅,目光也是
  3. Josephus 问题相关
  4. Red Hat Enterprise Linux Server release 5.6 安装 MongoDB 2.6.4
  5. System.currentTimeMillis()存在性能问题
  6. [No0000B0]ReSharper操作指南1/16-入门与简介
  7. Github Page创建个人主页以及绑定域名
  8. mysql中count(*)和count(1)和count(column)区别
  9. android R编译OTA时报“ExternalError: Invalid ro.product.property_source_order”解决方法
  10. (转)[Cocoa]深入浅出 Cocoa 之 Framework
  11. 简单谈谈MySQL优化利器-慢查询
  12. 计算机论文物业管理系统,物业小区管理系统 计算机专业毕业论文
  13. 最简单可靠的机房温度电话报警
  14. linux - 安装Ubuntu20.04.5版本
  15. Android仿余额宝实现七天年化收益率图表
  16. 算法初步 计算机程序,算法初步-程序框图
  17. win10修改默认文件管理器
  18. 转载过来的一些嵌入式资料
  19. 电梯惊魂”不再发生,物联卡解决电梯安全问题!
  20. hgame2023-week4

热门文章

  1. php字符串连接符、三元运算符
  2. 被远程机器长时间无响应 (错误码:[308])_自动折叠式“Rollbot”为完全不受束缚的软机器人铺平了道路...
  3. php7安装mysqli扩展_Ubuntu14版本下无法使用php7.2版本的bcmath扩展
  4. react中引入html文件,在react中怎么引用js
  5. 【转载】ACM中矩阵乘法的应用
  6. Linux系统监控shell脚本
  7. linux中错误总结归纳
  8. 【1】TCP三次握手的第三次的 ack包丢失会怎样?
  9. 【Leetcode | 03】String
  10. 2019/2/18 Python今日收获