【mybatis批量插入】
mybatis批量插入操作:
MySQL:1、INSERT INTO TABLE_NAME(ID,NAME)VALUES(1,'张三'),(2,'李四')
2、INSERT INTO TABLE_NAME(ID,NAME)VALUES(1,'张三');INSERT INTO TABLE_NAME(ID,NAME)VALUES(2,'李四')
Oracle:1、INSERT INTO TABLE_NAME (ID,NAME) (SELECT 1,'张三' from dual) union all (SELECT 2,'李四' from dual)
2、INSERT INTO TABLE_NAME (ID,NAME) VALUES(1,'张三');INSERT INTO TABLE_NAME(ID,NAME)VALUES(2,'李四')
备注:4条SQL都是数据库支持的写法。两者的第二种是不推荐的写法,因为不管效率还是可读性上都远差于第一种,当然,还有更重要的一点,Mybatis不支持第二种写法,因为mybatis的一个事务只支持一条SQL,所以,Mybatis里写法只能取两者的第一种,代码如下:
MySQL:
<select id="batchSave" parameterType="java.util.List">
INSERT INTO TABLE_NAME(ID,NAME) VALUES
<foreach collection="list" item="itm" separator=",">
(#{itm.id},#{itm.name})
</foreach>
</select>
//////////////////////////////////////////////////////////////////////////////////////////////////
ORACLE:
<select id="batchSave" parameterType="java.util.List">
INSERT INTO TABLE_NAME(ID,NAME)
<foreach collection="list" item="itm" separator="union all">
(SELECT #{itm.id},#{itm.name} FROM DUAL)
</foreach>
</select>
【mybatis批量插入】的更多相关文章
- mybatis批量插入数据到oracle
mybatis 批量插入数据到oracle报 ”java.sql.SQLException: ORA-00933: SQL 命令未正确结束“ 错误解决方法 oracle批量插入使用 insert a ...
- springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例
案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入.其实类似的场景还 ...
- 解决Oracle+Mybatis批量插入报错:SQL 命令未正确结束
Mybatis批量插入需要foreach元素.foreach元素有以下主要属性: (1)item:集合中每一个元素进行迭代时的别名. (2)index:指定一个名字,用于表示在迭代过程中,每次迭代到的 ...
- 160421、MyBatis批量插入数据
在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用MyBatis批量插入,由于之前没用过批量插入,在网上找了一些 ...
- MyBatis批量插入数据(MySql)
由于项目需要生成多条数据,并保存到数据库当中,在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,项目使用了Spring+MyBatis,所以打算使用MyBatis批量插入,应 ...
- mybatis批量插入oracle时报错:unique constraint (table name) violated
mybatis批量插入oracle时报错:unique constraint (table name) violated,是因为插入的集合中有两条相同唯一约束的数据.
- Mybatis 批量插入数据
--mybatis 批量插入数据 --1.Oracle(需要测试下是否支持MySQL) < insert id ="insertBatch" parameterType=&q ...
- mybatis批量插入、批量删除
mybatis 批量插入 int addBatch(@Param("list")List<CustInfo> list); <insert id="ad ...
- 【转载】MyBatis批量插入数据(insert)
介绍:MyBatis批量插入数据,原理就是在xml文件中添加 foreach 语句,然后MyBatis自动在values后面添加多个括号: XML文件如下: <?xml version=&quo ...
随机推荐
- 《python基础教程(第二版)》学习笔记 字符串(第3章)
<python基础教程(第二版)>学习笔记 字符串(第3章)所有的基本的序列操作(索引,分片,乘法,判断成员资格,求长度,求最大最小值)对字符串也适用.字符串是不可以改变的:格式化输出字符 ...
- JavaScript中call、apply个人理解
JavaScript中call.apply个人理解 一句话即通俗的说:call.apply 是为了改变this的状态而存在的 }; } function personInfo(name,age){ t ...
- Echarts一个页面加载多个图表及图表自适应
Echarts一个页面加载多个图表及图表自适应 模块化加载 //入口 require.config({ paths: { echarts: 'http://echarts.baidu.com/buil ...
- cocos2d-x 3.9 android studio项目命令行打包
进入创建的项目的 proj.android-studio目录 cocos run/compile -p android --android-studio 这样就可以打包了
- 各数据库连接配置与maven依赖安装
maven用的比较多,所以自己去捣鼓了一下:以下是关于数据库配置的一块,把相关的内容张贴出来,以备不时之需 //MySql 配置文件(maven):pom.xml <dependency> ...
- Unity3D之Mesh(二)为三角形添加纹理
一.直接開始上步驟 首先繪製一個三角形 創建一個材質,以便後續使用: 1)材質使用的貼圖 2)上代碼 using UnityEngine; using System.Collections; /* = ...
- 实现stack 加上·getMin功能 时间复杂度为O(n)
package com.hzins.suanfa; import java.util.Stack; /** * 实现stack 加上·getMin功能 时间复杂度为O(n) * @author Adm ...
- linux命令学习笔记(48):watch命令
watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测 一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下 ...
- bzoj 2794: Cloakroom dp
题目: 有\(n\)件物品,每件物品有三个属性\(a_i,b_i,c_i,(a_i < b_i)\) 再给出\(q\)个询问,每个询问由非负整数\(m,k,s\)组成,问是否能够选出某些物品使得 ...
- WSGI服务与django的关系
WSGI接口 wsgi是将python服务器程序连接到web服务器的通用协议.uwsgi是独立的实现了wsgi协议的服务器. web服务器 服务端程序 简化版的WSGI架构 服务端程序(类似dja ...