首页 - 技术 - Java MyBatis 插入数据库返回主键

Java MyBatis 插入数据库返回主键

2023-09-05 16:14
-->

问题?

如何在Java MyBatis 插入数据库返回主键?

最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记。

类似下面这段代码一样获取插入后的主键

User user = new User();
user.setUserName("chenzhou");
user.setPassword("xxxx");
user.setComment("测试插入数据返回主键功能"); System.out.println("插入前主键为:"+user.getUserId());
userDao.insertAndGetId(user);//插入操作
System.out.println("插入后主键为:"+user.getUserId());

解决方案:

由于鄙人当时的学习水平有限,未能很好处理这个问题,如今再来看这个问题,其实很简单。

当时我的思维局限于插入数据后不想再次调用查询接口,就直接获取这个插入的主键Id. 因此如果想达到这种效果,最优方案是下面解决方案的第二种方式

但是其实我们完全可以在插入后再调用下其他查询接口就可以了。

User user = new User();
user.setUserName("chenzhou");
user.setPassword("xxxx");
user.setComment("测试插入数据返回主键功能"); System.out.println("插入前主键为:"+user.getUserId());
userDao.insertAndGetId(user);//插入操作 User myUser=userDao.findUserByName(user.getName());
System.out.println("插入后主键为:"+myUser.getUserId());

不想再次调用查询接口的解决方案

经过查询网上资料,发现大致有两种方式。