用註解的方式實現Mybatis插入資料時返回自增的主鍵Id
阿新 • • 發佈:2018-12-31
一、背景
我們在資料庫表設計的時候,一般都會在表中設計一個自增的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()就可以獲取。