Mybatis批量插入数据 -- 校验唯一索引
1. 单条插入
(1)未校验唯一索引:抛出违反唯一索引异常。
(2)单条校验唯一性后插入:频繁连接数据库,性能低
2. 批量插入同时校验唯一性
(1)JDBC配置
支持批量操作,数据库连接地址增加:&allowMultiQueries=true
jdbc:mysql://ip:port/dataresource?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
(2)xml文件
批量插入数据时:
(1)使用ignore关键字,监测表中主键或者unique索引,自动跳过重复数据,插入未重复数据。
(2)使用replace关键字,监测表中主键或者unique索引,删除重复数据后新增,并插入未重复数据。
<insert id="insertBatch" parameterType="java.util.List">
insert ignore into table_a (column_a, column_b, column_c)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.column_a}, #{item.column_b}, #{item.column_c})
</foreach>
</insert>