
Mybatis 实时获取到数据库的自增id
前言
在日常业务处理中,我们难免需要立马用到刚刚插入数据库数据的id,如果我们的id并不是我们插入的(例如uuid,雪花算法得到的等),而是数据库自增的,我们便无法得知次id是多少,如果我们再次查询数据库来获取该id,属实是写复杂了,并且还再次访问了数据库,有些多此一举,但mybatis给我们提供了一种方法以便我们来获取到该id,接下来就让我们来一探究竟吧
业务复现
现在我们有一张用户表,一张角色表,一张用户角色中间表,我们需要新建用户的时候给用户赋予角色,这个时候便需要在用户表插入数据时获取到该用户的id
我们正常来写的话代码如下:
(简单复现一下代码)
实现类
user.xml
userDept.xml
这样子写会有报错,提示我们userId不能为空,这就说明我们无法获取到新加入用户的id
解决方案
在user.xml加入两个参数
-
useGeneratedKeys
-
keyProperty
useGeneratedKeys:允许JDBC支持自动生成主键
keyProperty:主键字段
user.xml
这时,我们看到成功拿到了刚加入数据的id
注意:
如果还是没拿到,可能是yaml的mybatis配置问题,以下是我的配置
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 楠笙
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果