今天小編就爲大家分享一篇關於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中了。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接