MySQL返回插入的自动增长主键mybatis写法

洼地云 ai-quyi.png

在使用Mybatis操作数据库,涉及自动增长主键如何获得,以便后续代码使用的方式如下。

1.数据库设置自增键

这里是def_id字段。

2.MyBatis写法

    <insert id="insertSysProcessDef" parameterType="com.ruoyi.system.domain.SysProcessDef" useGeneratedKeys="true"
            keyProperty="defId" keyColumn="def_id">
        insert into sys_process_def
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="defName != null">def_name,</if>
            <if test="defType != null">def_type,</if>
            <if test="typeValue != null">type_value,</if>
            <if test="applicantIdentity != null">applicant_identity,</if>
            <if test="delFlag != null">del_flag,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="remark != null">remark,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="defName != null">#{defName},</if>
            <if test="defType != null">#{defType},</if>
            <if test="typeValue != null">#{typeValue},</if>
            <if test="applicantIdentity != null">#{applicantIdentity},</if>
            <if test="delFlag != null">#{delFlag},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="remark != null">#{remark},</if>
         </trim>
    </insert>

主要是useGeneratedKeys、keyProperty、keyColumn三个属性。

3.service方法

    @Transactional
    @Override
    public int insertSysProcessDef(SysProcessDef sysProcessDef) {
        sysProcessDef.setDelFlag("0");
        sysProcessDef.setCreateTime(DateUtils.getNowDate());
        sysProcessDef.setCreateBy(SecurityUtils.getUsername());

        int i = sysProcessDefMapper.insertSysProcessDef(sysProcessDef);
        return i;
    }

注意:返回的主键,是参数sysProcessDef的属性defId对应值,而不是i。

赞(1)
未经允许禁止转载:优米格 » MySQL返回插入的自动增长主键mybatis写法

评论 抢沙发

合作&反馈&投稿

商务合作、问题反馈、投稿,欢迎联系

广告合作侵权联系

登录

找回密码

注册