问题描述

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官网

https://blog.csdn.net/mobiusstrip/article/details/88581869

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐