您的位置:首页 > 其它

Mybatis 插入操作时获取主键

2013-01-30 11:20 399 查看
环境:Mybatis+Oracle10g

1.通过Oracle序列

-- Create sequence
create sequence SEQ_DW_EWSYSTEM

minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;

<insert id="insertEwsystem" parameterType="Ewsystem">
<selectKey keyProperty="id" resultType="long" order="BEFORE">
SELECT SEQ_EWSYSTEM.NEXTVAL FROM DUAL <!-- SELECT DECODE(MAX(ID),NULL,0,MAX(ID))+1 FROM EWSYSTEM -->
</selectKey>
INSERT INTO EWSYSTEM (ID,ORG_ID,NAME)VALUES(#{id},#{orgId,jdbcType=VARCHAR},#{name,jdbcType=VARCHAR})
</insert>

2.通过Oracle触发器

create or replace trigger TRG_DW_EWSYSTEM
before insert
on DW_EWSYSTEM  for each row
begin
select SEQ_DW_EWSYSTEM.nextval into :new.id from dual;
end;

<insert id="insertEwsystem" parameterType="Ewsystem">
<selectKey resultType="int" keyProperty="id" order="AFTER">
SELECT SEQ_DW_EWSYSTEM.CURRVAL FROM DUAL
</selectKey>
INSERT INTO EWSYSTEM (ID,ORG_ID,NAME)VALUES(#{id},#{orgId,jdbcType=VARCHAR},#{name,jdbcType=VARCHAR})
</insert>

以上的Mybatis配置文件中的sql语句中的 ID|#{id} 也可以去掉不影响
本文出自 “我的技术博客” 博客,请务必保留此出处http://programmer.blog.51cto.com/2859493/1129614
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: