用注解的方式实现Mybatis插入数据时返回自增的主键Id

时间:2021-11-28 03:43:02

一、背景

我们在数据库表设计的时候,一般都会在表中设计一个自增的id作为表的主键。这个id也会关联到其它表的外键。

这就要求往表中插入数据时能返回表的自增id,用这个ID去给关联表的字段赋值。下面讲一下如何通过注解的方式实现插入数据时返回自增Id。

二、设计数据库表

 CREATE TABLE `tbl_user` (
   `id` ) NOT NULL AUTO_INCREMENT,
   `name` ) NOT NULL DEFAULT '',
   `age` ) ',
   PRIMARY KEY (`id`)
 ) ENGINE DEFAULT CHARSET=utf8;

三、设计Java bean对象

 public class User
 {
     private int userId = -1;

     private String name = "";

     private int age = -1;

     @Override
     public String toString()
     {
         return "name:" + name + "|age:" + age;
     }

     public int getUserId()
     {
         return userId;
     }

     public void setUserId(int userId)
     {
         this.userId = userId;
     }

     public String getName()
     {
         return name;
     }

     public void setName(String name)
     {
         this.name = name;
     }

     public int getAge()
     {
         return age;
     }

     public void setAge(int age)
     {
         this.age = age;
     }
 }

四、添加mapper接口

 @Mapper
 public interface UserMapper
 {
     @Insert("insert into tbl_user (name, age) values (#{name}, #{age})")
     @Options(useGeneratedKeys=true, keyProperty="userId", keyColumn="id")
     void insertUser(User user);
 } 

通过以上几个步骤就可以实现在插入user到数据库时返回自增ID。数据插入成功后,id值被反填到user对象中,调用getUserId()就可以获取。