之前给大家简单的介绍一下mybatis批量更新数据的内容,那么下面要继续给大家介绍的就是mybatis批量插入数据的内容,那么这该如何实现呢?下面一起来详细的了解一下吧!
一、mybatis批量插入
因为项目需要生成多条数据,并且,要保存到数据库当中,在程序当中封装了一个List集合对象,之后,就要将这个集合当中的实体插入到数据库当中,项目使用了Spring+MyBatis,所以的话,就准备使用MyBatis批量插入。
这应该要比循环插入的效果更好,下面一起来了解一下详细过程吧。
下面是具体的代码实现:
注意了,这里在循环的时候,要new出来新的对象。
不是说通过循环改变属性的值就认为这是一个新的对象了。
简单的来说的话,就是new ReddemCode()要放到for循环的里面。
xxxMapper.xml
<!-- 批量插入生成的兑换码 --> <insert id ="insertCodeBatch" parameterType="java.util.List" > <selectKey resultType ="java.lang.Integer" keyProperty= "id" order= "AFTER"> SELECT LAST_INSERT_ID() </selectKey > insert into redeem_code (bach_id, code, type, facevalue,create_user,create_time) values <foreach collection ="list" item="reddemCode" index= "index" separator =","> ( #{reddemCode.batchId}, #{reddemCode.code}, #{reddemCode.type}, #{reddemCode.facevalue}, #{reddemCode.createUser}, #{reddemCode.createTime} ) </foreach > </insert >
xxxMapper.java(部分)
int insertCodeBatch(List < ReddemCode > reddemCodeList);
二、foreach标签解释
下面对foreach做一个简单的介绍。
1、foreach主是要用在构建in条件当中,它能够在SQL语句中进行迭代一个集合。
2、foreach元素属性主要有:index、close、open、item、separator、collection。
注意
index指定一个名字,用来代表在迭代过程当中,每次迭代到的位置;
close表示以什么结束;
open代表这个语句以什么开始;
item代表的是集合当中每一个元素进行迭代时的别名;
separator代表在每次进行迭代之间用什么符号作为分隔符;
collection这个属性是一定要指定的,但是在不同情况下,这个属性的值也会有所不同;
以上的内容就是对于mybatis批量插入数据的相关介绍了,你都了解了吧,更多内容,可以继续关注奇Q工具网的java架构师栏目了解。
推荐阅读: