需求:使用MyBatis往MySQL數據庫中插入一條記錄後,需要返回該條記錄的自增主鍵值。
方法:在mapper中指定keyProperty屬性,示例如下:
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">
insert into user(userName,password,comment)
values(#{userName},#{password},#{comment})
</insert>
如上所示,我們在insert中指定了keyProperty=“userId”,其中userId代表插入的User對象的主鍵屬性。
User.java
public class User {
private int userId;
private String userName;
private String password;
private String comment;
//setter and getter
}
測試:
User user = new User();
user.setUserName("chenzhou");
user.setPassword("xxxx");
user.setComment("測試插入數據返回主鍵功能");
System.out.println("插入前主鍵爲:"+user.getUserId());
userDao.insertAndGetId(user);//插入操作
System.out.println("插入後主鍵爲:"+user.getUserId());
輸出:
插入前主鍵爲:0
插入後主鍵爲:15
查詢數據庫:
如上所示,剛剛插入的記錄主鍵id爲15