Mybaist 注解 foreach 嵌套循环实现批量插入
第一种写法(#使用占位符推荐):
@Insert("<script>"
+ " insert into ${tb} "
+" <foreach collection=\"fields\" item=\"field\" separator = \",\" open='(' close=')'> "
+ "`${field}`"
+"</foreach>"
+ "values"
+" <foreach collection=\"list\" item='mvo' index=\"list_index\" separator = \",\" > "
+" <foreach collection=\"mvo.keys\" item=\"key\" open='(' close=')' separator = \",\">"
+" #{mvo.${key}} "
+" </foreach> "
+"</foreach>"
+ "</script>")
int insertBatch(@Param("list")List<Map<String,Object>> housingList,@Param("fields") Set<String> keys,@Param("tb") String table) throws Exception;
执行结果:
insert into
dmp_department_work ( `functional` , `num` , `power` , `state` , `department` , `table` )
values ( ? , ? , ? , ? , ? , ? ) ,( ? , ? , ? , ? , ? , ? )
第二种写法($不使用占位符):
@Insert("<script>"
+ " insert into ${tb} "
+" <foreach collection=\"fields\" item=\"field\" separator = \",\" open='(' close=')'> "
+ " `${field}`"
+" </foreach>"
+ "values"
+" <foreach collection=\"list\" item='mvo' index=\"list_index\" separator = \",\" > "
+" <foreach collection=\"mvo.keys\" item=\"key\" open='(' close=')' separator = \",\">"
+" '${mvo[key]}' "
+" </foreach> "
+"</foreach>"
+ "</script>")
int insertBatch(@Param("list")List<Map<String,Object>> housingList,@Param("fields") Set<String> keys,@Param("tb") String table) throws Exception;
执行结果:
insert into
dmp_department_work ( `functional` , `num` , `power` , `state` , `department` , `table` )
values ( '17' , '1' , '152' , '0' , '1' , 'dmp_data_task' ) , ( '17' , '1' , '153' , '0' , '1' , 'dmp_data_meet' )
注意:
使用注解实现:
- ${}表示直接注入值, 使用#{}符号表示占位取值
- map遍历取值三种方式:item.[key] 或 item[key] 或 item.key,如果传入的是java实体,使用item.key取值
Mybaist 注解 foreach 嵌套循环实现批量插入的更多相关文章
- MyBatis动态SQL foreach标签实现批量插入
需求:查出给定id的记录: <select id="getEmpsByConditionForeach" resultType="com.test.beans.Em ...
- Mybatis对oracle数据库进行foreach批量插入操作
MySQL支持的语法 INSERT INTO `tableX` ( `a`, `b`, `c`, `d`, `e` ) VALUES <foreach collection ="lis ...
- mybatis批量插入oracle
<insert id="batchInsert" parameterType="java.util.List"> INSERT INTO TEST( ...
- Mybatis 批量插入
一.首先对于批量数据的插入有两种解决方案(下面内容只讨论和Mysql交互的情况) 1)for循环调用Dao中的单条插入方法 2)传一个List<Object>参数,使用Mybatis的批量 ...
- mybatis使用foreach进行批量插入和删除操作
一.批量插入 1.mapper层 int insertBatchRoleUser(@Param("lists") List<RoleUser> lists);//@Pa ...
- mybatis foreach批量插入数据:Oracle与MySQL区别
mybatis foreach批量插入数据:Oracle与MySQL不同点: 主要不同点在于foreach标签内separator属性的设置问题: separator设置为","分 ...
- Mybatis通过注解方式实现批量插入数据库 及 常见的坑
原文地址:http://f0rb.iteye.com/blog/1207384 MyBatis中通过xml文件配置数据库批量操作的文章很多,比如这篇http://www.cnblogs.com/xcc ...
- Mybatis通过注解方式实现批量插入数据库
原文地址:http://f0rb.iteye.com/blog/1207384 MyBatis中通过xml文件配置数据库批量操作的文章很多,比如这篇http://www.cnblogs.com/xcc ...
- MyBatis 使用 foreach 批量插入
MyBatis 使用 foreach 批量插入 参考博文 老司机学习MyBatis之动态SQL使用foreach在MySQL中批量插入 使用MyBatis一次性插入多条数据时候可以使用 <for ...
随机推荐
- 【并行计算-CUDA开发】Windows下opencl环境配置
首先声明我这篇主要是根据下面网站的介绍, 加以修改和详细描述,一步一步在我自己的电脑上实现的, http://www.cmnsoft.com/wordpress/?tag=opencl&pag ...
- CVE-2018-2628
哈哈哈,终于等到我复现一个CVE漏洞了. 漏洞描述 Oracle Fusion Middleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台.该平 ...
- AKKA文档2.2(java)——术语,概念
原文:http://doc.akka.io/docs/akka/2.3.6/general/terminology.html 译者:吴京润 本章我们试图建立一个通用的术语列表,用来定义有关并发和分布式 ...
- 看某视频开始做LINUX笔记的第一天
LINUX系统对分区的基本要求: 1.最少要有一个根分区 / 分区,用来存放系统文件及程序.其大小至少在5GB以上. 2.要有一个 swap (交换)分区,它的作用相当与windows的虚拟内存,sw ...
- 题目---汉诺塔及AI代码及八皇后
2019春第十一周作业 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering ...
- kafka的错误日志log监控
例如:需要监控下面的日志中的error 日志文件是这个 /data1/confluent-5.2.2/logs/connect/kafka-connect.log 1/ 参考上一篇安装zabbix_a ...
- [转帖]PostgreSQL与MySQL比较 From 2010年
PostgreSQL与MySQL比较 [复制链接] http://bbs.chinaunix.net/thread-1688208-1-1.html osdba 稍有积蓄 好友 博客 消息 论坛徽章 ...
- 制作U盘的win7系统安装
方法一 用iso.需要下载个UltraISO软件安装. 制作64位WIN7系统U盘安装盘方法 首页就有iso下载,有雨林木风等,我下载了系统之家最新的1907 U盘安装win7系统BIOS设置 thi ...
- 【2019V2全新发布】ComponentOne .NET开发控件集,新增.NET Core数据引擎
ComponentOne .NET开发控件集 2019V2正式发布,除持续完善并加入全新的.NET开发控件外,还针对产品架构稳定性.易用性.与.NET Core平台深度集成.已有控件功能增强等多个方面 ...
- POJ - 1149 PIGS (建图思维+最大流)
(点击查看原题) 题目分析 (以下均为 Edelweiss 大佬的思路,博主承认自己写不了这么好,但是学习的心促使我记录下这个好题的写法,所以代码是我写的) [题目大意] 有 M 个猪圈,每个猪圈里初 ...