0、前言:
作爲一名新手,剛剛入手Mybatis中,總是能夠發現新大陸,而且不止一次的發現,可能你也問過度娘,不管解決還是沒有解決,你都學到了什麼。希望我的錯誤能夠幫助你。
1、問題描述:
就是想獲取插入用戶後,該用戶的ID,於是找度娘,告訴我在selectKey中,放一個SQL語句“SELECT LAST_INSERT_ID();”,然後就獲取到最後一次插入用戶的ID。
<insert id="insertUser" parameterType="user">
insert into users(name,sex,email) value(#{name},#{sex},#{email});
<selectKey order="AFTER" resultType="int" keyProperty="id">
SELECT LAST_INSERT_ID();
</selectKey>
</insert>
上述語句肯定是沒有毛病
,問題出現在獲取方式上,來看一下我的錯誤獲取方式(聲明:要想使用這個方法獲取插入後的主鍵編號,前提是要設置主鍵自增)
@Override
public boolean register(User u) {
int id = usermapper.insertUser(u);
System.out.println("您的編號"+id);
return num>0;
}
2、問題解決:
主要是理解錯誤!新手
(我)纔會入坑的,這個SQL語句執行完成後,會將結果自動封裝到user對象中,也就是說當這個insert執行完成後,ID就有值了,這個時候我們直接get出來就好了。正確展示:
@Override
public boolean register(User u) {
int num = usermapper.insertUser(u);
System.out.println("您的編號"+u.getId());
return num>0;
}
歡迎各位老鳥指點,每天進步一點點,爭取早日脫坑