mybatis批量插入、批量删除

mybatis

批量插入

int addBatch(@Param("list")List<CustInfo> list);

<insert id="addBatch" parameterType="java.util.List">

INSERT INTO CUSTINFO(

SERIALID,

CUSTID,

INVNM,

UPDATETIMESTAMP

)

<foreach collection="list" item="item" separator="union all" index="index" >

( SELECT

#{item.serialid,       jdbcType=VARCHAR},

#{item.custid,         jdbcType=VARCHAR},

#{item.invnm,          jdbcType=VARCHAR},

TO_TIMESTAMP(#{item.updatetimestamp}, ‘syyyy-mm-dd hh24:mi:ss.ff‘)

FROM DUAL

)

</foreach>

</insert>

批量删除

int delCustInfoBatch(@Param("list")List<CustInfo> list);

<update id="delCustInfoBatch" parameterType="java.util.List" >

DELETE FROM CUSTINFO

WHERE SERIALID IN

<foreach collection="list" item="item" open="(" separator="," close=")"  index="index" >

#{item.serialid,jdbcType=VARCHAR}

</foreach>

</update>

要做批量插入数据库,首先得知道该数据库对批量插入所支持的语法。

每一个数据库批量插入的语法都不一样。

mysql插入

<insert id="batchSave" parameterType="java.util.List">

INSERT INTO TABLE_NAME

( ID,

NAME

)

VALUES

<foreach collection="list"  item="item" separator=",">

( #{item.id,jdbcType=VARCHAR},

#{item.name,jdbcType=VARCHAR}

)

</foreach>

</insert>

时间: 2024-10-14 05:55:43

mybatis批量插入、批量删除的相关文章

mybatis使用foreach进行批量插入和删除操作

一.批量插入 1.mapper层 int insertBatchRoleUser(@Param("lists") List<RoleUser> lists);//@Param中的参数必须和mapper.xml中foreach的collection对应,若果不写@Param注解并且只传入一个list作为参数,则collection默认填list 2.mapper.xml <insert id="insertBatchRoleUser"> INS

sql server中的大数据的批量操作(批量插入,批量删除)

首先我们建立一个测试用员工表 ---创建一个测试的员工表--- create table Employee( EmployeeNo int primary key, --员工编号 EmployeeName nvarchar(50) null, --员工名称 CreateUser nvarchar(50) null, --创建人 CreateDate datetime null, --创建时间 ) 执行后结果: 那么假如我们要批量插入10000条数据,应该怎么办? 这里有四种方法(普通循环,事务循

mybatis+mysql批量插入和批量更新

一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo,oo,oo) mybatis中mapper.xml的代码如下: <!-- 批量插入数据 --> <insert id="insertBatch" parameterType="java.util.List" useGeneratedKeys="true"> <sel

批量更新批量update

一:Oracle数据库 1:批量插入 <insert id="insertBatch" parameterType="Java.util.List" >    insert into RECIPEDETAIL (RDID, ROID, TYPE,       NAME, MEDIWEIGHT, MEDINUM,       MONEY, OPERATETIME, CHARGENUMBER,       REMARK, INSTRUCTION, AMOUN

MyBatis直接执行SQL查询及批量插入数据

MyBatis直接执行SQL查询及批量插入数据 一.直接执行SQL查询: 1.mappers文件节选 <resultMap id="AcModelResultMap" type="com.izumi.InstanceModel">  <result column="instanceid" property="instanceID" jdbcType="VARCHAR" />  <

批量插入数据(基于Mybatis的实现-Oracle)

前言:做一个数据同步项目,要求:同步数据不丢失的情况下,提高插入性能. 项目DB框架:Mybatis.DataBase:Oracle. ---------------------------------------------------------------------------- 批量插入数据方式: 一.Mybatis 全局设置批处理: 二.Mybatis 局部设置批处理: 三.Mybatis foreach批量插入: ①SELECT UNION ALL: ②BEGIN INSERT I

Mybatis+mysql批量插入性能分析测试

前言 今天在网上看到一篇文章(后文中的文章指的就是它) https://www.jianshu.com/p/cce617be9f9e 发现了一种有关于mybatis批量插入的新方法,而且看了文章发现我原来的方法好像有点问题,但是由于文章中使用的环境是sqlserver而我经常使用的是mysql所以还是需要亲自来试试. 环境说明 项目使用springboot mybatis 数据库mysql5.7 使用本地mysql所以网络可以忽略不计 插入对象完全相同,只有id自增 表结构如下: CREATE

MyBatis批量添加和删除

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 10.5pt; font-family: 等线 } h1 { margin-right: 0cm; margin-left: 0cm; font-size: 24.0pt; font-family: 宋体; font-weight: bold } p { margin-right

MyBatis Oracle 使用序列批量插入数据库

由于现在项目昨晚批处理作业抽取数据主键生成器出现了问题,紧急解决用序列作为主键.   底层使用MyBatis与Oracle 数据库库交互. 和度娘交谈了很久她都没有给出解决方案.为   此自己写了想了一种方式,没想到一次测试完全通过.   大致demo如下  java 代码  1 /** 2 * 文件名称: InsertBatch 3 * 内容摘要: 测试 MyBatis 使用序列批量插入 4 * 创 建 人: sunrise 5 * 创建日期:2015-6-18 下午9:16:06 6 * 修