MyBatis插入數據返回主鍵的介紹

今天小編就爲大家分享一篇關於MyBatis插入數據返回主鍵的介紹,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

Service層:

public int addUser(UserDomian user){
  int i = userMapper.insert(user);
}

xml:

<insert id="insert" parameterType="....UserDomain">
  insert into t_user(user_name,password)
  values
  (#{userName},#{password})
</insert>

這樣userMapper的insert方法成功插入之後返回值爲影響行數,也就是1。而且插入之後userDomain實體類的userId爲null。

我們都知道在MyBatis中,xml的insert語句中將useGeneratedKeys指定爲true,那麼返回之後就會得到新增的主鍵值,具體寫法如下:

<insert id="insert" parameterType="....UserDomain" useGeneratedKeys="true" keyProperty="userId">
  insert into t_user(user_name,password)values(#{userName},#{password})
</insert>

前提條件是對應的mysql表中id必須是自增的,並且對應的UserDomain實體類中有get、set方法,而且只適用於與mySql數據庫,Oracle數據庫不支持。

但是這樣設置之後,在service層打斷點,插入成功之後UserDomain確實和之前不一樣,他的userId不再是null了,而是具體的主鍵id值,但是usetMapper的insert方法的返回值依然是1,也就是插入的影響行數。

也就是說,這樣設置,mapper接口返回值依然是成功插入的記錄數,但不同的是主鍵值已經賦值到領域模型實體的id中了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章