想寫一個插入后獲取剛插入的數據的id,結果總是1.
<insert id="save" parameterType="dictionary"> <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_ID() as id </selectKey> insert into tb_cfms_dictionary ( category, `key`, `value`, parentId ) values ( #{category}, #{key}, #{value}, #{parentId} ) </insert>
其中dictionary是我們實體類路徑
返回1是因為我們查詢成功返回1,查詢失敗自然返回0
再次之前,因為設置id為String類型會一直報錯,因為不能返回String類型。
將實體類中的id改為Integer后,然后返回1.其實真實的id已經返回我們傳入的參數實體類了。
其中keyProperty就是將id返回到實體類中了。所以接下來只要這么寫
dictionary.setParentId("32");
dictionaryDao.save(dictionary);
parentId = String.valueOf(dictionary.getId());
左邊進行斷點,在此之前dictionary實體類是並沒有id的
下一步之后id就會有id值了
問題解決