关闭

mybatis+mysql返回插入数据主键

标签: mysqlmybatis工作
503人阅读 评论(1) 收藏 举报
分类:

工作中有这么个需求:后边数据依赖前边插入数据的主键,所以需要插入返回主键;当然了,还有更好的方法,直接用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>  


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2063次
    • 积分:106
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论