您的位置:首页 > 数据库 > MySQL

mybatis+mysql返回插入数据主键

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