MyBatis-Plus如何解决主键自增问题

 更新时间:2023年07月15日 09:30:35   作者:Been Doing  
这篇文章主要介绍了MyBatis-Plus如何解决主键自增问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

MyBatis-Plus主键自增失败

1、先看错误

Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5c731754]
2022-12-05 21:05:55.322 ERROR 17476 --- [nio-8989-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: 
### Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'id' at row 1
### The error may exist in com/baidu/mapper/SysAccountMapper.java (best guess)
### The error may involve com.baidu.mapper.SysAccountMapper.insert-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO account  ( id, datatime )  VALUES  ( ?, ? )
### Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'id' at row 1
; Data truncation: Out of range value for column 'id' at row 1; nested exception is com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'id' at row 1] with root cause

com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'id' at row 1

大概意思就是说,mybatis-plus添加数据的主键失败。

2、需求

想要数据库中添加数据,成自增的。

我明明在数据库设置了主键id自增,但是添加数据的时候没有自增那。

3、解决

1、在数据库中添加确保是自增。

2、在实体类上页添加自增

4、自增策略

  • 要想主键自增需要配置如下主键策略
  • 需要在创建数据表的时候设置主键自增
  • 实体字段中配置 @TableId(type = IdType.AUTO)

MyBatis-Plus插入后获取自增主键

1、在主键上的**@TableId注解增加属性 type**。

官方文档里各个参数的说明

2、设置之后,在调用mapper.insert(domain)方法之后,插入完成后,直接能从domain中取到最新的主键。

测试代码

结果如下:

测试结果

总结

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

相关文章

  • 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)

    使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)

    在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求,具体内容详情大家参考下本文
    2018-01-01
  • Rabbit消息重试机制问题记录

    Rabbit消息重试机制问题记录

    消息重试机制就是在消息处理失败之后重新发送,主要时为了解决消息发送过程可能会出现的问题,例如 网络故障、服务临时不可用 等,这篇文章主要介绍了Rabbit消息重试机制问题记录,需要的朋友可以参考下
    2024-08-08
  • 长度最小的子数组题目详解(Java版)

    长度最小的子数组题目详解(Java版)

    这篇文章主要给大家介绍了关于长度最小的子数组(Java版)的相关资料,这到题来自力扣,通过学习本文对大家理解这道题目有很大的帮助,需要的朋友可以参考下
    2023-12-12
  • 使用Java高效将CSV转换为Excel的实现方法

    使用Java高效将CSV转换为Excel的实现方法

    在日常的数据处理和分析工作中,CSV文件因其轻量级和通用性而广受欢迎,然而,当我们需要进行复杂的数据分析或利用Excel强大的图表和公式功能时,将CSV数据转换为Excel文件就成了开发者们常见的需求和痛点,本文将深入探讨如何利用Java高效地将CSV转换为Excel
    2025-08-08
  • springboot security自定义认证过程

    springboot security自定义认证过程

    这篇文章主要介绍了springboot security自定义认证过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • GSON实现Java对象的JSON序列化与反序列化的实例教程

    GSON实现Java对象的JSON序列化与反序列化的实例教程

    GSON是Google开发并开源的一个Java的JSON转换库,这里我们将来讲解GSON实现Java对象的JSON序列化与反序列化的实例教程,需要的朋友可以参考下
    2016-06-06
  • Mybatis配置之typeAlias标签的用法

    Mybatis配置之typeAlias标签的用法

    这篇文章主要介绍了Mybatis配置之typeAlias标签的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 一文秒懂java到底是值传递还是引用传递

    一文秒懂java到底是值传递还是引用传递

    这篇文章主要介绍了java到底是值传递还是引用传递的相关知识,本文通过几个例子给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 如何通过JVM角度谈谈Java的clone操作

    如何通过JVM角度谈谈Java的clone操作

    java中仅有的创建对象的两种方式:①.使用new操作符创建对象;②.使用clone方法复制对象。下面这篇文章主要通过JVM角度给大家详细谈谈Java的clone操作的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-06-06
  • 基于Java类的加载方式

    基于Java类的加载方式

    这篇文章主要介绍了基于Java类的加载方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07

最新评论