1.建立序列
-- Create sequence
create sequence ADDCARDAUTO_SEQUENCE
minvalue 1
maxvalue 9999999999999999999999999999
start with 250
increment by 1
cache 10;
2.创建触发器
create or replace trigger addCardAuto before
insert on unicom_card for each row /*对每一行都检测是否触发*/
begin
select addCardAuto_Sequence.CURRVAL into:New.id from dual;
end;
3.mybaties返回自增Id
<insert id="insertSIMCard" parameterType="SIMCard">
<selectKey resultType="java.lang.Long" order="BEFORE" keyProperty="id">
SELECT ADDCARDAUTO_SEQUENCE.Nextval as id from DUAL
</selectKey>
insert into unicom_card
(
ICCID,
TERMINALID,
ZONE,
OPERATOR,
STATUS)
values
(
#{iccid,jdbcType=NUMERIC},
#{terminalId,jdbcType=VARCHAR},
#{zone,jdbcType=VARCHAR},
#{operator,jdbcType=VARCHAR},
#{status,jdbcType=VARCHAR})
</insert>
Long num=simCardMapper.insertSIMCard(simCard);
System.out.println(simCard.getId());
num为受影响的条数
打印出来的是自增的id
其中:CURRVAL指当前id,Nextval下一个ID