網(wǎng)站建設(shè)發(fā)言臨沂seo排名外包
在某些業(yè)務中,我們在新增一條數(shù)據(jù)之后,需要拿到這條數(shù)據(jù)的id來對這條數(shù)據(jù)進行后續(xù)的一個操作,如何拿取id呢?
使用的是<insert> 中的useGeneratedKeys 和 keyProperty 兩個屬性
1.在Mybatis Mapper文件中添加屬性 “useGeneratedKeys”和“keyProperty”,其中 keyProperty 是 Java 對象的屬性名,而不是表格的字段名。
<insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> insert into system(name) values(#{name})
</insert>
2.Mybatis 執(zhí)行完插入語句后,自動將自增長值賦值給對象 systemBean(指的是你自己創(chuàng)建的對象) 的屬性id。因此,可通過 systemBean 對應的 getter 方法獲取!
int count = systemService.insert(systemBean);
int id = systemBean.getId(); //獲取到的即為新插入記錄的ID
【注意事項】
-
Mybatis Mapper 文件中,“useGeneratedKeys” 和 “keyProperty” 必須添加,而且 keyProperty 一定得和 java 對象的屬性名稱一直,而不是表格的字段名。
-
java Dao中的 Insert 方法,傳遞的參數(shù)必須為 java 對象,也就是 Bean,而不能是某個參數(shù)。