MyBatis支持批量插入获得自增id

来源:互联网 发布:网络舆论暴力事件 编辑:程序博客网 时间:2024/05/16 07:32

MyBatis以前不支持批量插入获取自增id,于是有些需求就难以实现,插入一批数据但是都需要知道id的场景(比如需要将id记录到日志表)就只能换成一个个插入,一定程度上降低了效率。

之前有大神分析过MyBatis源代码,并且给出了一种解决方案(稍微有点麻烦),详见:

https://my.oschina.net/zudajun/blog/674946

MyBatis在3.3.x修复了这个问题,详见:

https://github.com/mybatis/mybatis-3/pull/547

使用方式如下:

<insert id="batchInsert" useGeneratedKeys="true" keyProperty="id" parameterType="java.util.List">    insert into xxxx values    <foreach collection="list" item="item" index="index" separator=",">        xxx    </foreach></inser>

这里有几个注意点:

1. parameterType是List,当然也可以省略;

2. foreach中的collection需要写成list(默认就是这个),当有多个参数需要加@Param的时候,里面的名字也要写成list。

其中第2点在一个issue中有讨论,不知后面是否有修复,可以使用自定义的名字,没有试过。


0 0
原创粉丝点击