zyllf2009 发表于 2016-11-26 08:51:24

MyBatis返回插入的主键ID

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。
 
方法:在mapper中指定keyProperty属性,示例如下:
Xml代码  


[*]<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
Java代码  


[*]public class User {  
[*]    private int userId;  
[*]    private String userName;  
[*]    private String password;  
[*]    private String comment;  
[*]      
[*]    //setter and getter  
[*]}  

 UserDao.java
Java代码  


[*]public interface UserDao {  
[*]  
[*]    public int insertAndGetId(User user);  
[*]  
[*]}  

 测试:
Java代码  


[*]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());  

 输出:
Shell代码  


[*]插入前主键为:0  
[*]插入后主键为:15  

 查询数据库:

 
如上所示,刚刚插入的记录主键id为15
页: [1]
查看完整版本: MyBatis返回插入的主键ID