使用MyBatis做数据处理框架时,操作大量数据的插入、更新等耗时的工作时,可以使用批量处理来提高效率,MyBatis的批量处理主要使用foreach标签来实现。
foreach 元素的功能是非常强大的,它允许你指定一个集合,声明可以用在元素体内的集合项和索引变量。它也允许你指定开闭匹配的字符串以及在迭代中间放置分隔符。这个元素是很智能的,因此它不会偶然地附加多余的分隔符。
注意: 你可以将任何可迭代对象(如列表、集合等)和任何的字典或者数组对象传递给foreach作为集合参数。当使用可迭代对象或者数组时,index是当前迭代的次数,item的值是本次迭代获取的元素。当使用字典(或者Map.Entry对象的集合)时,index是键,item是值。
foreach入参介绍:
1.如果传入的是单参数且参数类型是一个List的时候,collection属性值为list。
2.如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array。
3.如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map。
下面以博客的Post类为例,Post有3个属性:id、msg、type。
1.批量查询
<select id="selectPostBatch" resultType="domain.blog.Post"> SELECT * FROM POST WHERE id in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </select>
2.批量插入
<insert id="savePostBatch" parameterType="list"> insert into POST (msg,type) values <foreach item="item" index="index" collection="list" separator=","> #{item.msg},#{item.type} </foreach> </insert>
3.批量更新
<update id="updatePostBatch" parameterType="list"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update post <trim prefix="set" suffixOverrides=","> <if test="item.msg!=null"> msg=#{item.msg}, </if> <if test="item.type!=null"> type=#{item.type}, </if> </trim> where id=#{item.id} </foreach> </update>
相关推荐
Mybatis批量foreach merge into的用法,这是介绍Mybatis批量foreach merge into的用法的文档
压缩包有eclipse包文件和操作步骤word文档 mybatis数据操作(增删改查+批量操作)
Mybatis与JDBC批量插入MySQL数据库性能测试,资源包含文档、代码和数据库。
本文给大家分享MyBatis批量插入(insert)数据操作知识,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
NULL 博文链接:https://hzs0502030128.iteye.com/blog/2254585
测试在单元测试中
MyBatis的作用我想不用多说,今天说说MyBatis中的批量删除操作。 非常不错,感兴趣的朋友一起看看吧
主要介绍了Mybatis批量修改的操作代码,需要的朋友可以参考下
MyBatis的作用我想不用多说,今天说说MyBatis中的批量删除操作。 需要的朋友一起看看吧
关于数据库批量插入时sql语句级的优化,我特意测试了两种方式,在StudentMapper中配置了两种insert模式。第一种对应insert value1,insert value2,,,,;第二种对应insert values (value1, value2,....)。发现后者果然...
mybatis批量操作的源码
Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),这篇文章主要介绍了mybatis postgresql 批量删除操作,需要的朋友可以参考下
Java开发中集成mybatis+orcal做批量操作时会遇到的问题。就想记录一下问题,这里的方法我的是完全可以的
通过例子,介绍通过MyBatis访问达梦数据库,及各种关联查询,包括一对一、一对多、及多对多的关联关系的持久化类、Mapper、接口和测试。
mybatis动态sql之xml增删改查批量操作示例EmpMapper.xml
mybatis代码生成工具,源于mybatis-generator-gui ,个人定制开发 新增支持oracle分页,批量增删改操作。 下载解压即可,作为开发人员,相信你一看就知道怎么用。ui桌面界面操作,方便快捷。
主要介绍了mybatis 根据id批量删除的实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
在操作数据库时,经常会碰到批量插入、批量删除的情况,直接执行SQL语句还好做一点,当使用Mybatis进行批量插入、批量删除时会有一些问题。下面对使用Mybatis批量插入,批量删除进行介绍