mybatis批量操作三种方法
一:批量更新某一个字段(数组或者map作为参数)
<update id="updateInvoiceID" parameterType="java.util.Map" >
update table
set
<if test="parentID != null and parentID !=''">
parentID= #{parentID}
</if>
where SUA_TransItemID in
<foreach collection="sUATransItemIDs" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</update>
二:批量新增或者批量修改(固定字段,不带条件,foreach放在执行内)
List<Map<String ,Object>> list = new ArrayList<Map<String ,Object>>();//作为参数
<insert id="insertBatch" parameterType="java.util.List">
insert into table(
xxx,
yyy,
zzz,
createTime
)values
<foreach collection="list" item="item" index="index"
separator=",">
(
#{item.xxx},
#{item.yyy},
#{item.zzz},
date_format( now()
,'%Y%m%d%H%i%s')
)
</foreach>
</insert>
三:批量新增或者批量修改(不固定字段,带if test条件,foreach放在执行外)
List<Map<String ,Object>> list = new ArrayList<Map<String ,Object>>();//作为参数
<insert id="insert" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="" close=";" separator=";">
insert table(
<if test="item.remark!=null and item.remark!=''">
remark,
</if>
createTime
)values
(
<if test="item.remark!=null and item.remark!=''">
#{item.remark},
</if>
date_format( now() ,'%Y%m%d%H%i%s')
)
</foreach>
</insert>
总结:(1)item:循环体中的具体对象。支持属性的点路径访问,如item.age,item.info.details。
具体说明:在list和数组中是其中的对象,在map中是value。
该参数为必选。
(2)separator:元素之间的分隔符,例如在in()的时候,separator=","会自动在元素中间用“,“隔开,避免手动输入逗号导致sql错误,如in(1,2,)这样。该参数可选。
(3)open:foreach代码的开始符号,一般是(和close=")"合用。常用在in(),values()时。该参数可选。
(4)close:foreach代码的关闭符号,一般是)和open="("合用。常用在in(),values()时。该参数可选。
(5)index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选。
分享到:
相关推荐
Mybatis批量foreach merge into的用法,这是介绍Mybatis批量foreach merge into的用法的文档
压缩包有eclipse包文件和操作步骤word文档 mybatis数据操作(增删改查+批量操作)
测试在单元测试中
Mybatis与JDBC批量插入MySQL数据库性能测试,资源包含文档、代码和数据库。
NULL 博文链接:https://hzs0502030128.iteye.com/blog/2254585
MyBatis的作用我想不用多说,今天说说MyBatis中的批量删除操作。 非常不错,感兴趣的朋友一起看看吧
本文给大家分享MyBatis批量插入(insert)数据操作知识,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),这篇文章主要介绍了mybatis postgresql 批量删除操作,需要的朋友可以参考下
Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)
关于数据库批量插入时sql语句级的优化,我特意测试了两种方式,在StudentMapper中配置了两种insert模式。第一种对应insert value1,insert value2,,,,;第二种对应insert values (value1, value2,....)。发现后者果然...
主要介绍了Mybatis批量修改的操作代码,需要的朋友可以参考下
MyBatis的作用我想不用多说,今天说说MyBatis中的批量删除操作。 需要的朋友一起看看吧
通过实际测试对比了Spring Boot中6种MySQL批量更新方式的效率,并详细记录了每种方法在处理500,1000,5000,10000,50000,100000条数据的平均时间、最小时间和最大时间。包括MyBatis-Plus提供的批量更新,JdbcTemplate...
Java开发中集成mybatis+orcal做批量操作时会遇到的问题。就想记录一下问题,这里的方法我的是完全可以的
mybatis批量操作的源码
通过实际测试对比了Spring Boot中6种MySQL批量更新方式的效率,并详细记录了每种方法在处理500,1000,5000,10000,50000,100000条数据的平均时间、最小时间和最大时间。包括MyBatis-Plus提供的批量更新,JdbcTemplate...
mybatis代码生成工具,源于mybatis-generator-gui ,个人定制开发 新增支持oracle分页,批量增删改操作。 下载解压即可,作为开发人员,相信你一看就知道怎么用。ui桌面界面操作,方便快捷。
通过实际测试对比了Spring Boot中6种MySQL批量更新方式的效率,并详细记录了每种方法在处理500,1000,5000,10000,50000,100000条数据的平均时间、最小时间和最大时间。包括MyBatis-Plus提供的批量更新,JdbcTemplate...
mybatis动态sql之xml增删改查批量操作示例EmpMapper.xml