解决业务中,要插入数据库,获取到插入数据的主键来进行后续操作

发布时间 2023-08-07 12:06:20作者: 流年乱了沉浮。

在项目中经常需要获取到插入数据的主键来保障后续操作,数据库中主键一般我们使用自增或者uuid()的方式自动生成,

问题:对于uuid使用Java代码生成的方式还比较容易控制,但是如果主键必须用int或Long,使用数据库生成的主键比较简便,这样我们就需要将插入的数据再查询出来得到主键,某些情况下还可能查询到多条情况,这样就比较尴尬了。

 

比如在项目中我们插入二个表的数据,一对多的关系,一个菜品表,一个口味表,先插入菜品表,然后用菜品表的主键当成口味表的逻辑外键,为了保证菜品表主键不重复,我们使用数据库自增。

先插入菜品表数据

 

 

 

 

useGeneratedKeys=“true” keyProperty=“id”

useGeneratedKeys设置为 true 时,表示如果插入的表id以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键id返回。

 keyProperty=“id”,根据实体类的id,获取插入数据的主键

 

 

获取插入菜品表数据的主键

 这样我们就解决业务中,获取插入数据表自增获取主键了,通过useGeneratedKeys设置生效, keyProperty=“id”指定实体类的名称

 

备注:
useGeneratedKeys参数只针对 insert 语句生效,默认为 false