mybatis数据的批量插入
1:xml的配置
<insert id="insertUserBatch">
insert into user(username, birthday, sex, address)
VALUES
<foreach collection="list" item="User" index="index" separator=",">
(
#{User.username},
#{User.birthday},
#{User.sex},
#{User.address}
)
</foreach>
</insert>
2:测试
@Test
public void insertUserBatch() {
List<User> users = new ArrayList<User>();
User user1 = new User();
user1.setUsername("云澈");
user1.setSex("男");
User user2 = new User();
user2.setUsername("张小凡");
user2.setSex("男");
User user3 = new User();
user3.setUsername("火灵儿");
user3.setSex("女");
users.add(user1);
users.add(user2);
users.add(user3);
userMapper.insertUserBatch(users);
sqlSession.commit();
}
对于foreach标签的解释参考了网上的资料,具体如下:
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。
foreach元素的属性主要有 item,index,collection,open,separator,close。
item表示集合中每一个元素进行迭代时的别名,index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符,close表示以什么结束,在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,主要有一下3种情况:
1.如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
2.如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
3.如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map
mybatis数据的批量插入的更多相关文章
- MyBatis 使用 foreach 批量插入
MyBatis 使用 foreach 批量插入 参考博文 老司机学习MyBatis之动态SQL使用foreach在MySQL中批量插入 使用MyBatis一次性插入多条数据时候可以使用 <for ...
- MSSQL数据的批量插入
一.概述: 对于数据的批量插入操作似乎成了某些大数据量操作的必用手段,MSSQL也提供了一些数据批量插入的操作方法,先将这些方法汇总,以便于下次用到使用.面对数据的批量插入操作,我们也应该考虑一个问题 ...
- postgresql优化数据的批量插入
原文:http://www.cnblogs.com/mchina/archive/2012/08/11/2537393.html 有以下几种方法用于优化数据的批量插入. 1. 关闭自动提交: ...
- C#使用SqlDataAdapter 实现数据的批量插入和更新
近日由于项目要求在需要实现中型数据的批量插入和更新,晚上无聊,在网上看到看到这样的一个实现方法,特摘抄过来,以便以后可能用到参考. 一.数据的插入 DateTime begin = DateTime. ...
- MySQL 避免重复数据的批量插入与批量更新
[转发] 导读 我们在向数据库里批量插入数据的时候,会遇到要将原有主键或者unique索引所在记录更新的情况,而如果没有主键或者unique索引冲突的时候,直接执行插入操作. 这种情况下,有三种方式执 ...
- mybatis oracle mysql 批量插入时的坑爹问题--需谨记
mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...
- mybatis使用序列批量插入数据
mybatis只提供了单条数据的插入,要批量插入数据我们可以使用循环一条条的插入,但是这样做的效率太低下,每插入一条数据就需要提交一次,如果数据量几百上千甚至更多,插入性能往往不是我们能接受的,如下例 ...
- Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1 背景 系统中需要批量生成单据数据到数据库表,所以采用 ...
- MyBatis操作Oracle批量插入 ORA-00933: SQL 命令未正确结束
最近在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis 的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常 ### ...
- SQL Server中中数据行批量插入脚本的存储实现
看到博友SQL Server MVP桦仔的一篇博文“将表里的数据批量生成INSERT语句的存储过程的实现”.我仔细看来博文中的两个存储代码,自我感觉两个都不太满意,都是生成的单行模式的插入,数 ...
随机推荐
- ctfshow--红包题第二弹 临时文件命令执行
上来先代码审计 点击查看代码 <?php if(isset($_GET['cmd'])){ $cmd=$_GET['cmd']; highlight_file(__FILE__); if(pre ...
- VPC终端节点的实现架构和原理
本文分享自天翼云开发者社区<VPC终端节点的实现架构和原理>,作者:云云生息 什么是VPC终端节点? 在传统的VPC架构中,为了使VPC内的资源能够与云服务提供商的各种服务进行通信,通常需 ...
- wsgi服务器
wsgi服务器DRP原则:Don't repeat yourself1.wsgi接口:全称 Web Server Gateway Interface (web服务器网关接口) 请求:request 响 ...
- Google 常用语法说明
Google 常用语法说明 背景 Google Hacking,作为一种利用谷歌搜索引擎的强大能力来挖掘互联网中敏感或未公开信息的技巧,已成为安全研究.漏洞挖掘及信息搜集领域的重要工具. 通过精心构造 ...
- Maven配置多仓库
一.配置说明 <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="htt ...
- Luogu P3899 湖南集训 更为厉害 题解 [ 紫 ] [ 可持久化线段树 ] [ dfs 序 ] [ 线段树合并 ]
更为厉害:可持久化做法有点意思,但线段树合并做法就很无脑了. 线段树合并做法 显然有三种 \(b\) 的位置的分类讨论. 当 \(b\) 为 \(a\) 的祖先时 从祖先里选 \(b\),从儿子里选 ...
- 让 LLM 来评判 | 评估你的评估结果
评估你的评估结果 这是 让 LLM 来评判 系列文章的第三篇,敬请关注系列文章: 基础概念 选择 LLM 评估模型 设计你自己的评估 prompt 评估你的评估结果 奖励模型相关内容 技巧与提示 在生 ...
- Linux环境Docker使用代理推拉镜像
闲扯几句 不知不觉已经2月中了,1个半月忙得没写博客,这篇其实很早就想写了(可追溯到Docker刚刚无法拉镜像的时候),由于工作和生活上的事比较多又在备考软考架构,拖了好久-- 简单记录下怎么做的,以 ...
- vue+elementui怎样点击table中的单元格触发事件--弹框
可以先看一下官网中table的自定义列模板代码 <template> <el-table :data="tableData" border s ...
- spring-boot配置slf4j日志
SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.按照官方的说法,SLF4J 是一个用于日志系统的简单 ...