Mybatis 插入操作时获取主键 (Oracle 触发器与SEQ)

1.通过Oracle序列

  1. -- Create sequence
  2. create sequence SEQ_DW_EWSYSTEM
  3. minvalue 1
  4. maxvalue 999999999999999999999999999
  5. start with 1
  6. increment by 1
  7. cache 20;
  1. <insert id="insertEwsystem" parameterType="Ewsystem">
  2. <selectKey keyProperty="id" resultType="long" order="BEFORE">
  3. SELECT SEQ_EWSYSTEM.NEXTVAL FROM DUAL <!-- SELECT DECODE(MAX(ID),NULL,0,MAX(ID))+1 FROM EWSYSTEM -->
  4. </selectKey>
  5. INSERT INTO EWSYSTEM (ID,ORG_ID,NAME)VALUES(#{id},#{orgId,jdbcType=VARCHAR},#{name,jdbcType=VARCHAR})
  6. </insert>

2.通过Oracle触发器

  1. create or replace trigger TRG_DW_EWSYSTEM
  2. before insert
  3. on DW_EWSYSTEM  for each row
  4. begin
  5. select SEQ_DW_EWSYSTEM.nextval into :new.id from dual;
  6. end;
    1. <insert id="insertEwsystem" parameterType="Ewsystem">
    2. <selectKey resultType="int" keyProperty="id" order="AFTER">
    3. SELECT SEQ_DW_EWSYSTEM.CURRVAL FROM DUAL
    4. </selectKey>
    5. INSERT INTO EWSYSTEM (ID,ORG_ID,NAME)VALUES(#{id},#{orgId,jdbcType=VARCHAR},#{name,jdbcType=VARCHAR})
    6. </insert>
上一篇:python-twisted系列(1)


下一篇:CentOS7 监控进程网络流量工具安装