Mybatis插入数据返回主键id

实体类

public class AddServiceDTO {

    private Integer serviceId;

    /**
     * 存放返回的服务主键id
     */
    private Integer servicePrimaryId;
}

接口

int submitForService(@Param("param") AddServiceReviewDTO param);

如果这个接口使用了@Param注解,那么在mybatis中keyProperty则要加上param才能获取到返回的主键id

    <insert id="submitForService" parameterType="com.trademark.admin.dto.AddServiceDTO"
            useGeneratedKeys="true" keyProperty="param.servicePrimaryId">
        INSERT INTO service
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="param.serviceId != null">
                service_id,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="param.serviceId != null">
                #{param.serviceId,jdbcType=INTEGER},
            </if>
        </trim>
    </insert>

keyProperty为AddServiceDTO中定义的用于接收主键id的servicePrimaryId,不是数据库中的列名

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,677评论 0 4
  • 内容: select用法 insert用法 update用法 delete用法 多个接口参数的用法 动态代理实现原...
    lihongyan阅读 2,675评论 1 3
  • 前言 本篇将完成DAO层的设计与开发,包括: 数据库、DAO实体与接口设计与编码 基于MyBatis实现DAO编程...
    MOVE1925阅读 1,383评论 0 4
  • MyBatis 理论篇 [TOC] 什么是MyBatis  MyBatis是支持普通SQL查询,存储过程和高级映射...
    有_味阅读 2,967评论 0 26
  • 1、什么是Mybatis? Mybatis是一个半ORM框架,封装了JDBC,开发时只要关注SQL语句本身,不需要...
    落地生涯阅读 3,399评论 0 1