服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - mybatis中返回主键一直为1的问题

mybatis中返回主键一直为1的问题

2023-03-05 15:33mikaelzero Java教程

这篇文章主要介绍了mybatis中返回主键一直为1的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mybatis 返回主键一直为1

1是返回的插入成功的行数,这没有错

而自增id则是直接映射到对象里,直接输出 xxx.getId()即可

举例:

在xml中:

<insert id="addUser" parameterType="blog.model.User" useGeneratedKeys="true" keyProperty="id">
......

java中代码:

int primary = userService.addUser(user);
int id = user.getId();

上面的id就是返回的主键

 

mybatis 自增主键 主键回传,返回id为null 踩坑

Mybatis主键回传流程

一、插入的实体对象中包含和数据库字段唯一对应的属性

二、xml中配置(两种方式)

方式一:

mybatis中返回主键一直为1的问题

这种方式比较简单,就是在插入节点上添加 useGeneratedKeys 属性,同时设置接收回传主键的属性。

6配置完成后,我们执行一个插入操作,插入时传入一个对象,插入完成后,这个对象的 id 就会被自动赋值,值就是刚刚插入成功的id。

方式二:

mybatis中返回主键一直为1的问题

这种方式是在 insert 节点中添加 selectKey 来实现主键回填,实际上这种方式的功能更加丰富,因为 selectKey 节点中的 SQL 我们既可以在插入之前执行,也可以在插入之后执行(通过设置节点的 Order 属性为 AFTER 或者 BEFORE 可以实现),具体什么时候执行,还是要看具体的需求,如果是做主键回填,我们当然需要在插入 SQL 执行之后执行 selectKey 节点中的 SQL。

踩坑

void insertBook(InsertBook insertBook);//主键可以回填
void insertBook(@Param("ib") InsertBook insertBook);//主键不会回填

千万不要使用@Param注解!!!主键不会回填!!!

 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq1604165677/article/details/72452984

延伸 · 阅读

精彩推荐
  • Java教程SpringBoot中的Thymeleaf模板

    SpringBoot中的Thymeleaf模板

    Thymeleaf 的出现是为了取代 JSP,虽然 JSP 存在了很长时间,并在 Java Web 开发中无处不在,但是它也存在一些缺陷。在这篇文中给大家介绍了这些缺陷所存在...

    JMCui8702021-06-03
  • Java教程详解利用SpringCloud搭建一个最简单的微服务框架

    详解利用SpringCloud搭建一个最简单的微服务框架

    这篇文章主要介绍了详解利用SpringCloud搭建一个最简单的微服务框架,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    程序猿DD5922021-02-03
  • Java教程java 工厂模式的实例详解

    java 工厂模式的实例详解

    这篇文章主要介绍了java 工厂模式的实例详解的相关资料,这里举例说明该如何实现工厂模式,需要的朋友可以参考下...

    lb8507479064912020-12-29
  • Java教程Java实现的动态数字时钟功能示例【显示世界时间】

    Java实现的动态数字时钟功能示例【显示世界时间】

    这篇文章主要介绍了Java实现的动态数字时钟功能,结合实例形式分析了java显示北京、纽约、伦敦等世界时间的相关日期时间运算操作技巧,需要的朋友可以参...

    水中鱼之19994402021-07-22
  • Java教程springboot 事件监听的实现方法

    springboot 事件监听的实现方法

    这篇文章主要介绍了springboot 事件监听的实现方法,并详细的介绍了四种监听方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小...

    lijingyulee8572021-07-31
  • Java教程关于maven环境的安装及maven集成idea环境的问题

    关于maven环境的安装及maven集成idea环境的问题

    Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK。本文重点给大家介绍关于maven环境的安装及和idea环境的集成问题,感兴趣的朋友一起看看...

    崽崽纯11632022-01-05
  • Java教程Java实现简单的五子棋游戏示例代码

    Java实现简单的五子棋游戏示例代码

    这篇文章主要为大家介绍了如何利用Java语言实现简单的五子棋游戏,文中的示例代码讲解详细,对我们学习Java游戏开发有一定帮助,需要的可以参考一下...

    错过了时间11492022-12-13
  • Java教程Java ThreadLocal的详细解释

    Java ThreadLocal的详细解释

    这篇文章主要介绍了快速了解Java中ThreadLocal类,介绍了ThreadLocal 是什么,ThreadLocal的作用,ThreadLocal 原理等相关内容,具有一定参考价值,需要的朋友可以...

    夏末秋涼5722022-03-11