1. 程式人生 > >用註解的方式實現Mybatis插入資料時返回自增的主鍵Id

用註解的方式實現Mybatis插入資料時返回自增的主鍵Id

一、背景

我們在資料庫表設計的時候,一般都會在表中設計一個自增的id作為表的主鍵。這個id也會關聯到其它表的外來鍵。

這就要求往表中插入資料時能返回表的自增id,用這個ID去給關聯表的欄位賦值。下面講一下如何通過註解的方式實現插入資料時返回自增Id。

二、設計資料庫表

CREATE TABLE `tbl_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL DEFAULT '',
  `age` int(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`
) ) ENGINE=InnoDB AUTO_INCREMENT=8 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()就可以獲取。