1:mysql 下 用自增序列
create table base_function
(id int auto_increment,name verchar(10),
primary key(id)
)
<insert id="save">
INSERT INTO base_function(name) values(#name)
<selectKey resultType="java.lang.Long" keyProperty="id">
SELECT LAST_INSERT_ID() AS id
</selectKey>
</insert>
2:oracle下 用sequence处理
<insert id="save">
<selectKey resultType="java.lang.Long" order="BEFORE" keyProperty="id">
SELECT Sequence_a.NEXTVAL FROM DUAL
</selectKey>
INSERT INTO STOCK_FRONT_GROUP(id,name)
values(#id,#name)
</insert>
区别:
1:
mysql 自增,插入sql中不需要维护字段,数据库维护。
oracle插入sql中要自个维护字段,只是这个字段是从数据库序列中获取的。
2:
两者都能返回主键数据