在项目中经常需要获取到插入数据的主键来保障后续操作,数据库中主键一般我们使用自增或者uuid()的方式自动生成,
问题:对于uuid使用Java代码生成的方式还比较容易控制,但是如果主键必须用int或Long,使用数据库生成的主键比较简便,这样我们就需要将插入的数据再查询出来得到主键,某些情况下还可能查询到多条情况,这样就比较尴尬了。
比如在项目中我们插入二个表的数据,一对多的关系,一个菜品表,一个口味表,先插入菜品表,然后用菜品表的主键当成口味表的逻辑外键,为了保证菜品表主键不重复,我们使用数据库自增。
先插入菜品表数据
useGeneratedKeys=“true” keyProperty=“id”
useGeneratedKeys设置为 true 时,表示如果插入的表id以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键id返回。
keyProperty=“id”,根据实体类的id,获取插入数据的主键
获取插入菜品表数据的主键
这样我们就解决业务中,获取插入数据表自增获取主键了,通过useGeneratedKeys设置生效, keyProperty=“id”指定实体类的名称
备注:
useGeneratedKeys参数只针对 insert 语句生效,默认为 false
标签:useGeneratedKeys,获取,数据库,id,插入,菜品,主键 From: https://www.cnblogs.com/zxpyyds/p/17610416.html