保存細節,獲取保存資料的id
每次保存用戶后,往往需要資料庫回傳的自增的主鍵值,進行下一步作業【給用戶增加權限…】
如果沒有保存完成后回傳id這個功能,那么我們就需要在進行一次查詢,這對我們來說是極其痛苦的,不光要多寫SQL,多寫方法,對我們來說時間是最寶貴的,專案經理給你做模塊的時間一般都是不夠用的,如果時間都用來寫無營養的SQL,那么就避免不了加班了,
下面就來說一下怎么怎么實作
首先我們知道,在MySQL資料庫中有這么一個函式 last_insert_id();此方法會查詢到最后一次保存的id
- 例如
- insert into tbl_user(name,age) values(“zhangsan”,“25”);
- select last_insert_id();

我們的MyBatis底層就是實作的這個函式
- 在UserDao介面中創建一個保存用戶的方法
public interface UserDao(){
//保存用戶的方法,并且回傳資料庫自增的id
Integer saveUserReturnId(User user);
}
- 在映射檔案中撰寫SQL【不同點】
<!--id寫到介面中方法名 parameterType輸入引數型別-->
<!--useGeneratedKeys:設定是否使用JDBC的getGenereatedKeys方法獲取主鍵并賦值到keyProperty設定的領域模型屬性中-->
<insert id="saveUserReturnId" keyProperty="id" useGeneratedKeys="true" parameterType="com.yixuexi.entity.User">
insert into user(name,age) values(#{name},#{age})
</insert>
差別:useGeneratedKeys:設定是否使用JDBC的getGenereatedKeys方法獲取主鍵并賦值到keyProperty設定的領域模型屬性中
3.注冊Mapper 【如果已經注冊了,那就不需要在進行注冊了】
4.撰寫測驗類
注意:
- 回傳的值并不是自增的id屬性
- MyBatis會把資料庫回傳的id值自動封裝到User物體類物件中
- 想要得到回傳的Id屬性,只需要通過呼叫 user.getId()即可
- 主鍵必須為自增長列,auto_increment

這樣就能用得到資料庫自動增長的id主鍵了
下一篇更新:查詢【通過id查詢,like查詢【詳解】,查詢總用戶數】
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/62975.html
標籤:其他
下一篇:資料庫期末復習
