java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > MyBatis-Plus解决主键自增

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

作者: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、自增策略

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

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

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

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

测试代码

结果如下:

测试结果

总结

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

您可能感兴趣的文章:
阅读全文