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

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()); //注意:这里取的取值.

 

 

 

posted @ 2017-06-23 09:20  orac  阅读(317)  评论(0编辑  收藏  举报