Oracle主键生成,selectKey标签的使用

在使用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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值