在使用mybatis时,常常会出现这种需求:
当主键是自增的情况下,添加一条记录的同时,其主键是不能使用的,但是有时我们需要该主键,这时我们该如何处理呢?这时我们只需要在其对应xml中加入以下属性即可:
useGeneratedKeys="true" keyProperty="对应的主键的对象"。
<!-- 主要是在主键是自增的情况下,添加成功后可以直接使用主键值,其中keyProperty的值是对象的属性值不是数据库表中的字段名-->
<insert id="insert" parameterType="com.crrc.pojo.ExcepTable" useGeneratedKeys="true" keyProperty="nId">
insert into t_exceptiontable (n_id, vch_excepType, vch_userName,
vch_phoneNumber, vch_carModel, vch_carNumber,
n_typeOfProblem, vch_excpetionTableNumber,
dt_proposeTime, dt_aquiredTime, vch_proposeUnit,
vch_hostUnit, vch_adviceOfTech, vch_adviceOfMate,
vch_adviceOfSect, vch_processInstanceId)
values (#{nId,jdbcType=INTEGER}, #{vchExceptype,jdbcType=VARCHAR}, #{vchUsername,jdbcType=VARCHAR},
#{vchPhonenumber,jdbcType=VARCHAR}, #{vchCarmodel,jdbcType=VARCHAR}, #{vchCarnumber,jdbcType=VARCHAR},
#{nTypeofproblem,jdbcType=INTEGER}, #{vchExcpetiontablenumber,jdbcType=VARCHAR},
#{dtProposetime,jdbcType=TIMESTAMP}, #{dtAquiredtime,jdbcType=TIMESTAMP}, #{vchProposeunit,jdbcType=VARCHAR},
#{vchHostunit,jdbcType=VARCHAR}, #{vchAdviceoftech,jdbcType=VARCHAR}, #{vchAdviceofmate,jdbcType=VARCHAR},
#{vchAdviceofsect,jdbcType=VARCHAR}, #{vchProcessinstanceid,jdbcType=VARCHAR})
</insert>
这样在之后的java代码中我们就可以获取该主键对应的对象的属性值