做插入数据的时候经常用到插入操作主键ID使用数据库自身的生成方式,
比如说自增,或者使用序列号,
具体配置如下
//mysql设置使用自增的主键生成策略,并能获取生成的主键值
<insert id="xxx" useGeneratedKeys="true" keyProperty="id">insert into tb(a,b,c) values(#{a},#{b},#{c})</insert>
//oracle使用序列
<insert id="xxx">
<selectKey keyProperty="id" order="BEFORE" resultType="Integer">
select xxx_SEQ.nextval from dual
</selectKey>
insert into tb(id,a,b,c) values(#{id},#{a},#{b},#{c})
</insert>
以上是两种方式,分别是mysql和oracle的主键设置,
说明:
useGeneratedKeys="true" 设置使用自增主键;
keyProperty="id" 设置自增主键返回字段(用户在插入数据之后获取相应主键);
order="BEFORE" 设置在insert之前执行查询序列操作,然后在insert时候引用查询的序列#{id}