MyBatis返回插入的主键ID(Mysql数据库)

时间:2021-11-22 21:46:31

1.Java代码:

1.1 entity类:

User.java

public class User {  

  private int userId;  

  private String userName;  

  private String password;  

  private String comment;  

  //这里要添加 setter and getter  略

}  

1.2 DAO类:

 UserDao.java

public interface UserDao {  

  public int insertAndGetId(User user);  

}  

2.Xml代码 : 

方法:在mapper中指定keyProperty属性,示例如下:(注意:这里不需要 resultType属性!)

<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.test.mybatis.User"> 
insert into user(userName,password,comment)
values(#{userName},#{password},#{comment})
</insert>

 

 如上所示,我们在insert中指定了keyProperty="userId",其中userId代表插入的User对象的主键属性。

说明:

useGeneratedKeys: 取值范围 true | false 默认值是:false。 含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。

keyProperty: 是JAVA对象的属性名(这里对应的是User.java的userId)。 

3.  测试:

Java代码  

  User user = new User();   
user.setUserName("张三");
user.setPassword("xxxx");
user.setComment("测试插入数据返回主键功能");
System.out.println("插入前主键为:"+user.getUserId());
UserDao.insertAndGetId(user);//插入操作
System.out.println("插入后主键为:"+user.getUserId()); //注意:这里取的取值.