mybatis insert成功后返回主键
问题描述mybatis新增成功后不返回主键解决方法方法一:推荐在mapper(即xml文件)的<insert>标签中进行如下图的设置其中,useGeneratedKeys="true"和keyProperty="id"成对使用,且必须设置; parameterType和keyColumn属性可以不设置。方法二:不推荐用<selectKey>标签;...
问题描述
mybatis新增成功后不返回主键
解决方法
方法一:推荐
在mapper(即xml文件)的<insert>标签中进行如下图的设置
其中,useGeneratedKeys="true"和keyProperty="id"成对使用,且必须设置; parameterType和keyColumn属性可以不设置。
方法二:不推荐
用<selectKey>标签;且这种方法可以用于不能自增的数据库(不推荐使用)

其中,
resultType属性值的类型要和实体类主键类型一直,否则报错【java.lang.IllegalArgumentException: argument type mismatch】。
insert语句中也可不写id和null。
方法三:不管用
在application.properties配置文件中添加如下配置
mybatis.configuration.use-generated-keys=true
其他问题
在设置完成后,并没有起作用,实体类主键依然为null。
注意事项
1.实体类dao层 不要添加@Param()属性
2.xml不要使用#{user.id}
3.如果要用1和2,那么keyProperty="user.id",要这么设置
4.数据库支持主键自增
参考博客
https://blog.csdn.net/guangyingposuo/article/details/90544739
mybatis官网
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)