在使用Oracle时,不像mysql没有主键递增。
1.首先在数据库新建查询中执行该语句。
create sequence LAW_AGENT_ID_SEQ
minvalue 100000000000
maxvalue 999999999999
start with 100000000000
increment by 1
cache 20;
2.xml中sql语句,其中LAW_AGENT_ID_SEQ对应。agentId为成的主键。
<!-- 表新增 -->
<insert id="LawAgent.insert">
<![CDATA[
INSERT INTO LAW_AGENT(
AGENT_ID,
AGENT_NAME,
AGENT_TYPE,
AGENT_ORG,
PART_STEP,
BANK_ORG,
DUTY,
PART_ROLE,
TEL,
ADDR,
CODE,
OTH_CONT,
OP_NO,
BR_NO,
TX_DATE,
UP_DATE,
UP_OP_NO
)VALUES(
#agentId#,
#agentName#,
#agentType#,
#agentOrg#,
#partStep#,
#bankOrg#,
#duty#,
#partRole#,
#tel#,
#addr#,
#code#,
#othCont#,
#opNo#,
#brNo#,
#txDate#,
#upDate#,
#upOpNo#
)
]]>
<!-- 查询该表的序列值 -->
<selectKey resultClass="java.lang.String" type="pre" keyProperty="agentId" >
SELECT LAW_AGENT_ID_SEQ.NEXTVAL AS AGENT_ID FROM DUAL
</selectKey>
</insert>
或者这样写
<!-- 表新增 -->
<insert id="LawAgent.insert">
<![CDATA[
INSERT INTO LAW_AGENT(
AGENT_ID,
AGENT_NAME,
AGENT_TYPE,
AGENT_ORG,
PART_STEP,
BANK_ORG,
DUTY,
PART_ROLE,
TEL,
ADDR,
CODE,
OTH_CONT,
OP_NO,
BR_NO,
TX_DATE,
UP_DATE,
UP_OP_NO
)VALUES(
LAW_AGENT_ID_SEQ.NEXTVAL,
#agentName#,
#agentType#,
#agentOrg#,
#partStep#,
#bankOrg#,
#duty#,
#partRole#,
#tel#,
#addr#,
#code#,
#othCont#,
#opNo#,
#brNo#,
#txDate#,
#upDate#,
#upOpNo#
)
]]>
</insert>