zoukankan      html  css  js  c++  java
  • Mybatis+Mysql 返回主键的值

    需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。

    方法:在mapper中指定keyProperty属性,示例如下:

    Xml代码 复制代码 收藏代码
    1. <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">  
    2.     insert into user(userName,password,comment)  
    3.     values(#{userName},#{password},#{comment})  
    4. </insert>  
    <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代码 复制代码 收藏代码
    1. public class User {  
    2.     private int userId;  
    3.     private String userName;  
    4.     private String password;  
    5.     private String comment;  
    6.       
    7.     //setter and getter  
    8. }  
    public class User {
    	private int userId;
    	private String userName;
    	private String password;
    	private String comment;
    	
    	//setter and getter
    }
    

     UserDao.java

    Java代码 复制代码 收藏代码
    1. public interface UserDao {  
    2.   
    3.     public int insertAndGetId(User user);  
    4.   
    5. }  
    public interface UserDao {
    
    	public int insertAndGetId(User user);
    
    }

     测试:

    Java代码 复制代码 收藏代码
    1. User user = new User();  
    2. user.setUserName("chenzhou");  
    3. user.setPassword("xxxx");  
    4. user.setComment("测试插入数据返回主键功能");  
    5.   
    6. System.out.println("插入前主键为:"+user.getUserId());  
    7. userDao.insertAndGetId(user);//插入操作  
    8. System.out.println("插入后主键为:"+user.getUserId());  
    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代码 复制代码 收藏代码
    1. 插入前主键为:0  
    2. 插入后主键为:15  
    插入前主键为:0
    插入后主键为:15

     查询数据库:

    如上所示,刚刚插入的记录主键id为15

  • 相关阅读:
    Javascript异步与同步问题
    promise解决异步问题:.then和async_await的渊源
    vue 爬坑之路----移动端适配rem单位
    vue 爬坑之路---can't resolve 'sass-loader'
    vue-cli新建vue项目
    sublimeT3编译sass.为css到指定的路径。
    禁止滚动条滚动
    让本地的静态html页面在node上跑起来
    地址三联动,简明实现
    关于数组去重
  • 原文地址:https://www.cnblogs.com/xiohao/p/4704373.html
Copyright © 2011-2022 走看看