mybatis在oracle中批量插入数据时,单次批量大小有限制,批量插入时,单次批量过大,也会影响插入性能。故程序端也需要对应的限制。
<insert id="addBatch" parameterType="java.util.List">
BEGIN
<foreach collection="list" item="item" index="index" separator="">
insert into blacklist
(id, userid, deviceid, createdate, updatedate, "LEVEL")
VALUES
(
USER_INFO_SEQ.NEXTVAL,#{item.userId,jdbcType=INTEGER},#{item.deviceId,jdbcType=VARCHAR},
#{item.createDate,jdbcType=DATE},sysdate, #{item.level,jdbcType=INTEGER} );
</foreach>
COMMIT;
END;
</insert>
<insert id="addBatch" parameterType="java.util.List">
INSERT INTO INFO (
PARTNERSERIALNUM,
MEMBERTYPE,
PARTNERMEMBERID,
REGMOBILE,
CONTACTSMOBILE,
"NAME",
EMAIL
)
<foreach collection="list" item="item" index="index" separator="union all" >
select #{item.partnerSerialNum,jdbcType=VARCHAR}, #{item.memberType,jdbcType=VARCHAR}, #{item.partnerMemberId,jdbcType=VARCHAR}, #{item.regMobile,jdbcType=VARCHAR}, #{item.contactsMobile,jdbcType=VARCHAR}, #{item.name,jdbcType=VARCHAR}
} from dual
</foreach>
</insert>