解決Mybatis中獲取插入後,主鍵返回值爲1問題

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;
}

歡迎各位老鳥指點,每天進步一點點,爭取早日脫坑

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