最近开发中遇到一个问题,通过inseret语句插入新数据后,如何获取新插入数据的id,上网查询之后,很容易就获取到解决办法,我尝试了两种

        方法一:

        在mapper.xml的insert标签语句中加入参数 useGeneratedKeys="true" keyProperty="id"

                 其中,useGeneratedKeys表示返回自增主键,keyProperty是Java对象的属性名,而不是数据库表中的字段名。还有一个keyColumn才是数据库表中的字段名,不过这里省略没有用

              

        方法二:

        在mapper.xml的insert标签语句中添加语句:

        <selectKey resultType="integer" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_ID() </selectKey>

 两者执行结果如下:

 可以看到插入数据的id为2,而输出i的结果为1

以上哪里错了吗?

我又尝试了许多次调整,最终结果都是这样:并不返回插入数据的id值,结果不是1就是null

都要崩溃的时候,发现了华点:

 原来如此,他把结果返回到了实体类的id中,而不是默认的返回值中,

        默认返回值只是代表成功插入的数据条数。

这么简单,白忙活了这么久,终于大功告成了

Logo

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

更多推荐