mybatis+mysql返回插入数据主键

原创 2016年06月01日 15:37:18

工作中有这么个需求:后边数据依赖前边插入数据的主键,所以需要插入返回主键;当然了,还有更好的方法,直接用mybatis配置关联表,一次插入多个关联表,但是这样做的话,各个业务实体间的耦合度就回升高,不利于扩展。最后,回归到获取返回主键处理,一般insert语句返回值是插入的条数,但是让插入语句返回主键值还没有试过。网上找了,大部分都是集中到:

    <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">  
          SELECT LAST_INSERT_ID() AS ID    
    </selectKey>  
之类的配置,本人试了下,发现这样做多此一举,因为我们只需要配置:

	<insert id="addUser" useGeneratedKeys="true" keyProperty="uid">
        INSERT INTO uc_members (
            mobile,
 。。。
        	myidkey ,
        	regip ,
        	regdate ,
        	lastloginip ,
        	lastlogintime ,
        	secques ,
        	login_error_num ,
        	login_error_time ,
        	login_lock_time,
        	channel
        ) VALUES (
    。。。
        	'',
        	0,
        	0,
        	0,
        	#{channel}
        )

	</insert>
而,mapper接口中方法声明:public int addUser (User member);

只要把 实体 User 中的主键 和 keyProperty="uid"对应上,插入结束,传入的参数 member 中的uid就已经被mybatis赋值为最新的id了。

是不是很爽,完全不用下面的配置:

<pre name="code" class="html">    <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">  
          SELECT LAST_INSERT_ID() AS ID    
    </selectKey>  


相关文章推荐

mybatis+mysql insert添加数据后返回数据主键id

1.修改mybatis xml       insert into test (name) values (#{name})   useGeneratedKeys="true" :设置是否使用JDB...

MyBatis+MySQL 返回插入记录的主键ID

今天用到了多个表之间的关系,另一个表中的一个字段要以第一个表的主键作为外键。 下面说两种方法,MyBatis+MySQL 返回插入记录的主键ID: 第一种: insert into user...

MySQL数据表中有自增长主键时如何插入数据

MySQL数据库表中有自增主键ID,当用SQL插入语句中插入语句带有ID列值记录的时候; 如果指定了该列的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的一个值; 也可以不指定该列的值,只将...
  • Weicleer
  • Weicleer
  • 2015年08月13日 10:36
  • 31314

MYSQL获取自增主键【4种方法】

通常我们在应用中对mysql执行了insert操作后,需要获取插入记录的自增主键。本文将介绍java环境下的4种方法获取insert后的记录主键auto_increment的值: 通过JDBC2....
  • UltraNi
  • UltraNi
  • 2013年07月17日 13:28
  • 44810

MyBatis+MySQL 返回插入记录的主键ID

摘要 Hibernate中获取新插入记录的对象id非常容易,通过其持久化对象就能完成。而Mybatis中有点复杂,本文转载了一篇文章,讲述mybatis中获取插入记录的自增长id,经测试在mysq...

mybatis 添加一条新数据并返回此数据的ID(主键)

通常数据库中表的主键是‘自动递增(mysql)’或’序列(oracle)‘,但插入数据后又要取得些条数据的ID(将ID做为主键) 利用Mybatis 的 selectKey来获得: s...

MySql 更新时返回主键id

最近做项目,遇到一个逻辑,就是在修改单条记录时需要返回该记录的id。 先说一下我的使用环境,springMVC+MyBatis,于是上度娘查了一下,将结果记录一下,仅供日后参考和大家们共同探讨 具体逻...

mysql插入一条数据,返回其对应的id

1.dao中     public Integer saveMutualEvaluation(MutualEvaluation evaluation); 2.dao.xml...

mybatis+mysql返回插入值后的主键id

第一步:     在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名!     ...

mysql插入数据后返回自增ID的方法

mysql插入数据后返回自增ID的方法   mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mybatis+mysql返回插入数据主键
举报原因:
原因补充:

(最多只允许输入30个字)