MyBatis的useGenerateKeys的使用方法

标签: mybatis
4人阅读 评论(0) 收藏 举报
分类:

需求:使用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中指定了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. }  

 UserDao.java

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

 测试:

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());  

 输出:

Shell代码  收藏代码
  1. 插入前主键为:0  
  2. 插入后主键为:15  

 查询数据库:

 

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

总结:用了这个useGenerateKeys="true"后,不用再在写一句关于select的SQL(降低数据库的压力)而直接能狗得到刚刚插进去的那个主键,但是——这个属性只能用在主键能自增长的数据库里面比如MySQL可以用,但是oracle就不能用了!






查看评论

Backbone M 使用方法

-
  • 1970年01月01日 08:00

读mybatis源码之十:主键生成KeyGenerator

在mybatis里面经常遇到生成主键的问题,使用自增或者序列,保存对象后对象里面有主键值,来看看是怎么处理的:...
  • jsj01113ng
  • jsj01113ng
  • 2014-06-21 20:54:21
  • 4650

MyBatis之参数配置

MyBatis最简单的实例也已跑通,实现了增删改查,涉及到复杂情况就是两眼一抹黑。这篇主要讲讲参数配置,方便后期项目,我这里没有从头到尾地去讲每个参数的使用,而是在实际使用中遇到了问题才会去看,故可能...
  • u013142248
  • u013142248
  • 2017-03-09 09:59:30
  • 1158

Mybatis批量插入,返回插入成功后的主键id

Mybatis在插入单条数据的时候有两种方式返回自增主键: 1、对于支持生成自增主键的数据库:增加 useGenerateKeys和keyProperty ,标签属性。 2、不支持生成自增...
  • ligiwen1
  • ligiwen1
  • 2018-01-23 16:50:47
  • 78

2017-3-28 笔记 知识点回顾

如果你有幸看到这篇博客,那么请出门左转,因为博主很渣,这只是一篇笔记,没有大神独白 -----------------------------------------------------...
  • qq_34921377
  • qq_34921377
  • 2017-03-28 22:34:40
  • 136

MyBatis魔法堂:Insert操作详解(返回主键、批量插入)

一、前言                                      数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅。   二...
  • Leolu007
  • Leolu007
  • 2015-06-26 18:34:10
  • 2571

Mybatis初学使用方法总结

MyBatis 简单使用总结
  • diaomeng11
  • diaomeng11
  • 2016-09-10 11:16:32
  • 1443

Mybatis 配置文件 useGeneratedKeys 参数

Mybatis 配置文件 useGeneratedKeys 参数只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生...
  • guankle
  • guankle
  • 2017-07-01 13:38:15
  • 3006

MyBatis的resultMap详解

  • 2014年05月16日 08:48
  • 136KB
  • 下载

mybatis_generator_逆向工程

  • 2017年02月10日 16:38
  • 2.22MB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 443
    排名: 11万+
    最新评论