做插入数据的时候经常用到插入操作主键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}