版权声明:转载请注明出处 https://blog.csdn.net/qq_40162735/article/details/85275562
Mybatis批量插入返回自增主键:
对于支持生成自增主键的数据库:useGenerateKeys和keyProperty
不支持生成自增主键的数据库:<selectKey>
1、Oracle数据库中创建自增序列
create sequence ARCHIVES_SEQ_ID
start with 1
increment by 1
minvalue 1
nomaxvalue
nocycle
2、mybatis中mapper.xml (利用 ARCHIVES_SEQ_ID.NEXTVAL 获取插入数据的主键)
<insert id="insert" parameterType="com.scanner.entity.archives" >
<selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id">
select ARCHIVES_SEQ_ID.NEXTVAL from DUAL
</selectKey>
insert into SYS_ARCHIVES (ID, NAMES,
SEX, IDCARDNO, KIND)
values (#{id,jdbcType=INTEGER} #{names,jdbcType=VARCHAR},
#{sex,jdbcType=VARCHAR}, #{idcardno,jdbcType=VARCHAR}, #{kind,jdbcType=VARCHAR})
</insert>
在插入的时候id字段也要写的,不然触发器会触发两次,导致返回id和表中的id不一致。