mybatis新增(插入)记录数据返回id

场景

插入记录之后,需要用新增的id。
根据其他条件重新查吗?
当然不,因为不但费事,而且代码也很丑陋。

解决方案

mybatis肯定有对应的解决方案啊。

先有个sequence,创建方法这里不详述了。
直接上干货,Mapper.xml:

<insert id="insertSelective" parameterType="com.common.model.User">
    <!-- keyProperty: 将序列号设置到对象中,且在controller中可以使用  -->
    <selectKey resultType="java.lang.Long" order="BEFORE" keyProperty="id">
        SELECT T_USER_SEQUENCE.nextval id from dual
    </selectKey>
    insert into T_S_INVOICE_DOCUMENT
    <trim prefix="(" suffix=")" suffixOverrides=",">
        <if test="id != null and id!=''">
            ID,
        </if>
        <if test="fileName != null and fileName!=''">
            FILE_NAME,
        </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
        <if test="id != null">
            #{id,jdbcType=DECIMAL},
        </if>
        <if test="fileName != null and fileName!=''">
            #{fileName,jdbcType=VARCHAR},
        </if>
    </trim>
</insert>

java代码:

int i = userMapper.insertSelective(user);
logger.info("i:{}",i);
logger.info("user:{}", JSON.toJSONString(user));

根据日志可以看出id已经返回到user对象里了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值