SpringBoot + MyBatis + MySQL 插入返回记录主键问题

  • 先贴一下自己的jar包引入情况
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.8</version>
</dependency>
  • 我的XML文件内容
    <insert id="addRole" useGeneratedKeys="true" keyProperty="role.id">
        insert into sys_role(name, description) values(#{role.name}, #{role.description})
    </insert>
  • 我的Mapper接口内容
Integer addRole(@Param("role") Role role);
  • 我的Role 类
    /**
     * 编号
     */
    private Integer id;
    /**
     * 角色名
     */
    private String name;
    /**
     * 描述
     */
    private String description;

  可以看出我的 MyBatis 的 Mapper 相关XML中,没有配置 parameterType 属性,并且在 keyProperty 属性的值 为 role.id,而不是教程中的 id. role其实就是 @Param() 注解中表明的变量.

  在SSM框架中,使用网上众多的教程中描述的方法是可以实现功能的,但是在 SpringBoot + MyBatis + MySQL中无法实现想要的需求. 希望以后在使用到相关地方的时候,能够主要到这一点.

一个有关“SpringBoot + MyBatis + MySQL 插入返回记录主键问题”的想法

  1. 之前踩过这个坑,但是没有总结下来,这次又遇到,算是好好的总结一番.

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.