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>  


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

mysql插入数据后返回自增ID的方法   mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数...
  • hewei0241
  • hewei0241
  • 2013年12月06日 16:43
  • 57772

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

mysql插入数据后返回自增ID的方法   mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如...
  • ling_du
  • ling_du
  • 2016年04月17日 17:23
  • 3811

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

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

MySQL插入数据后返回自增id的方法

在数据库操作中,很可能在执行插入操作(A表)时,需要先在另一张表(B表)中插入一条记录,然后获取其主键id,并将这id插入这张表(A表)。 对于新手而言,想到的可能是我先在B表执行“insert i...
  • csdnning
  • csdnning
  • 2017年11月25日 16:02
  • 392

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

1.修改mybatis xml       insert into test (name) values (#{name})   useGeneratedKeys="true" :设置是否使用JDB...
  • shuaipu813
  • shuaipu813
  • 2016年10月08日 13:44
  • 10273

MyBatis+MySQL map返回插入的主键ID

Mapper.xml SELECT LAST_INSERT_ID() as id insert into sys_organization_...
  • zy846771221
  • zy846771221
  • 2017年02月28日 17:40
  • 2216

Mybatis insert 返回主键

我们在使用mysql插入数据的时候,通常会有这样一个需求: 当表的主键id是自增字段的时候,会想要获得插入的id值用以下一个插入操作。 mybatis实际上已经为我们提供了这种功能:以下是我实现订...
  • q5841818
  • q5841818
  • 2015年09月05日 23:16
  • 2253

MyBatis insert实体返回主键

一、insert  属性详解    parameterType ,入参的全限定类名或类型别名    keyColumn ,设置数据表自动生成的主键名。对特定数据库(如PostgreSQL),若...
  • zhhandcsdn
  • zhhandcsdn
  • 2017年03月16日 11:39
  • 3339

MyBatis insert返回主键不成功

MyBatis insert返回主键不成功 说明:Mybaits的insert/update一般默认返回记录的更新条数,业务需要在保存完实体(insert)之后需要返回主键值。 官网说明Mybai...
  • nerdlan
  • nerdlan
  • 2017年04月01日 16:31
  • 3988

MyBatis insert操作返回主键

在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 针对Sequence主键而...
  • jbgtwang
  • jbgtwang
  • 2012年02月29日 20:52
  • 178442
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mybatis+mysql返回插入数据主键
举报原因:
原因补充:

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