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中了。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
相關文章
Spring?Boot獲取resources目錄下的文件三種方式詳解
在Spring?Boot項目中,經常需要獲取resources目錄下的文件,這些文件可以包括配置文件、模板文件、靜態(tài)資源等,這篇文章主要介紹了Spring?Boot獲取resources目錄下的文件的三種方式,需要的朋友可以參考下2023-06-06一文告訴你為什么要重寫hashCode()方法和equals()方法
本篇文章帶大家了解一下為什么重寫hashCode()方法和equals()方法,文中有非常詳細的說明以及代碼示例,對正在學習java的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05