Mybatis插入数据返回自增主键

/ Java / 0 条评论 / 270 浏览

官网文档说明:

useGeneratedKeys(仅对 insert 和 update 有用)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段), 默认值:false。 keyProperty(仅对 insert 和 update 有用)唯一标记一个属性,MyBatis 会通过 getGeneratedKeys 的返回值或者通过 insert 语句的 selectKey 子元素设置它的键值,默认:unset。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。

错误使用

第一次看官网文档的时候,以为我把useGeneratedKeys设置为true即可,在insert的接口处将返回值设置为Long,这个返回值就是主键,然后再测试的环境中,发现并没有任何变化,返回的依旧是影响行数。

正确方法

设置useGeneratedKeystrue,并且设置keyProperty是你改实体与主键对应的属性,比如id,(注意大小写),这样在插入数据的时候,你会发现,你的实体在插入数据后,实体的id会变成数据库中的自增id。这才是正确用法。 官网文档虽然对中文支持很好,可是对新手来说,理解比较困难