service層:
1
2
3
|
public int adduser(userdomian user){ int i = usermapper.insert(user); } |
xml:
1
2
3
4
5
|
<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,那么返回之后就會得到新增的主鍵值,具體寫法如下:
1
2
3
|
<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中了。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
原文鏈接:https://blog.csdn.net/hz_940611/article/details/80773139