您好,欢迎访问一九零五行业门户网

mybaits批量插入该如何操作

我们时长在批量插入时,需要获取插入数据的id.
这样:
 <insert id="insertuser" parametertype="gys.entity.user" keyproperty="userid" usegeneratedkeys="true">insert into `user`         (username)         values         (#{username})</insert>
这样是没问题的.
但是有时候牵扯到批量插入,并且获取插入的id
这样写:
<insert id="insertuserbatch1" keyproperty="userid" usegeneratedkeys="true">insert into `user`         (username)         values<foreach collection="list" separator="," item="item">(#{item.username})</foreach></insert>
这样运行后就会出现异常了.
这是因为你用的mybatis版本过低.比如我用的是3.2.2版本,这是mybatis的一个bug.
如果你换成3.4.4版本就没有问题了.
上面的sql语句换个写法 就又会报异常了(将insert包围在foreach里面)
比如:
<insert id="insertuserbatch2"> <foreach collection="list" separator=";" item="item"> insert into `user`                 (username)             values                 (#{item.username})         </foreach></insert>
同理还有update的批量更新也是有这个问题
<update id="updateuserbatch"><foreach collection="list" item="item" separator=";">update `user` set                 username=#{item.username}             where                 userid=#{item.userid}</foreach></update>
这是因为mybatis默认是只能执行一条sql语句,
可以再链接路径的时候加上参数,就可以执行多条sql语句了.allowmultiqueries=true
以上就是mybaits批量插入该如何操作的详细内容。
其它类似信息

推荐信息