oracle自增,返回插入记录的ID02

1、oracle自增是在SEQUENCE设置;可以在这个文件中设置自增规则;插入一条记录:

insert into student(student_id,first_name,last_name) values(seq_student.nextval,'','');

seq-student是自增规则的名字,seq_student.nextval主键自增;

2、插入一条数据,返回插入数据的ID;keyProperty是插入对象的属性,也就是与表中主键ID对应的;order="after"是在插入之后执行,SEQ_A_MODEL_LOSS是主键自增规则的名字,SEQ_A_MODEL_LOSS.CURRVAL是获取插入的主键值,DUAL是oracle中的虚拟表,来构成select的语法规则,oracle保证dual里面永远只有一条记录。

    <insert id="addLossModel">
        <selectKey resultType="long" order="AFTER" keyProperty="modelId">
            SELECT SEQ_A_MODEL_LOSS.CURRVAL as ID from DUAL
        </selectKey>
        INSERT INTO A_MODEL_LOSS (MODEL_ID,MODEL_CATE_ID,MODEL_CODE,MODEL_STANDARD_NAME,
        MODEL_TRIVIAL_NAME,MODEL_PINYIN_CODE,MODEL_LPCK_CODE,
        MODEL_TYPE,MODEL_CLASS,MODEL_COUNTRY,MODEL_MADE_IN,
        MODEL_IS_INSURER,MODEL_IS_LOSS,MODEL_IS_PIC,MODEL_BIG_PATH,
        MODEL_SMALL_PATH,MODEL_REMARK,MODEL_PART_COUNT,MODEL_VIN_NO,
        MODEL_STRUCT_TYPE,MODEL_GEAR_BOX,MODEL_IS_ENABLE,MODEL_IS_DELETE,
        MODEL_CREATE_DATE,MODEL_UPDATE_DATE,MODEL_OPER_SOURCE,DATA_EDITION,
        VERSION,MODEL_FACTORY,MODEL_DESC,TRAN_EDITION,PART_UPDATE_TIME)
        VALUES
        (SEQ_A_MODEL_LOSS.NEXTVAL,#{modelCateId},#{modelCode},#{modelStandardName},#{modelTrivialName},
        #{modelPinyinCode},#{modelLpckCode},#{modelType},#{modelClass},#{modelCountry},#{modelMadeIn},#{modelIsInsurer}
        ,#{modelIsLoss},#{modelIsPic},#{modelBigPath},#{modelSmallPath},#{modelRemark},#{modelPartCount},#{modelVinNo},
        #{modelStructType},#{modelGearBox},#{modelIsEnable},#{modelIsDelete},#{modelCreateDate},#{modelUpdateDate},
        #{modelOperSource},#{dataEdition},#{version},#{modelFactory},#{modelDesc},#{tranEdition},#{partUpdateTime})
    </insert>

猜你喜欢

转载自www.cnblogs.com/lazyli/p/10973646.html