Mybatis-Plus⾃动⽣成的数据库id过长 ⼀、问题 作为⼀名第⼀次使⽤mybatis-plus的萌新开发⼯程师,在项⽬开发过程中遇到⼀个问题。当使⽤mybatis-plus⾃带的mybatis-generate⽣成DO⽂件,如下图所⽰ DO类由注释@Table修饰,主键id由注释@Id,@GeneratedValue修饰。但是使⽤这样的默认DO...
1. 修改id字段类型 将id字段类型改为long, 这样就能保证有足够位数放入生成的id 2. 调整数据库id字段类型 将数据库的id字段的长度(改为20位) 解决方案二 如果想要使用id自增的, 就需要把mybatis-plus这个id生成的功能给关掉 添加注解 在id字段上加上如下注解即可 @TableId(value ="id",type= IdType.AUTO...
IdGenerator是一个缩了位的雪花ID生成算法,生成的位数是16位,不会导致JS精度丢失 package com.yrt.framework.config; import java.util.Date; import java.util.UUID; /** * compressed id generator, result id not great than 53bits before 2318-06-04. */ public class IdGenerator { private static IdG...
*//*** 全局唯一ID (idWorker),根据雪花算法生成19位数字,long类型*/ID_WORKER(3),/*** 全局唯一ID (UUID)*/UUID(4),/*** 字符串全局唯一ID (idWorker 的字符串表示),根据雪花算法生成19位字符串,String*/ID_WORKER_STR(5);private int key;IdType(int key) {this.key = key;}} 这里验证了一...
这就很奇怪了,目前该表数据量很少,且主键是设置AUTO_INCREMENT,正常而言,应该自增id仍在1000范围内,但目前已经变成一串长数字。 底层ORM框架用的是Mybatis-Plus,我寻思了一下,这看起来像是在插入数据库就自动生成的id,导致并非默认使用MySql的自增AUTO_INCREMENT来生成id。
这就很奇怪了,目前该表数据量很少,且主键是设置AUTO_INCREMENT,正常而言,应该自增id仍在1000范围内,但目前已经变成一串长数字。 底层ORM框架用的是Mybatis-Plus,我寻思了一下,这看起来像是在插入数据库就自动生成的id,导致并非默认使用MySql的自增AUTO_INCREMENT来生成id。
这就很奇怪了,目前该表数据量很少,且主键是设置AUTO_INCREMENT,正常而言,应该自增id仍在1000范围内,但目前已经变成一串长数字。 底层ORM框架用的是Mybatis-Plus,我寻思了一下,这看起来像是在插入数据库旧自动生成的id,导致并非默认使用MySql的自增AUTO_INCREMENT的id。
发现数据库中的数据是这样的:我的id变成了161343xxxxxx一长串,,我回去看我的建表语句确实没问题,之前没用MyBatisPlus也正常,那么问题出在MyBatisPlus上...
因为第一次添加的id值特别大我就把那一行给删了 然后改了自增长的数字 如图所示 修改之后就好了 packagecom.tong.pojo;importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableField;importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotati...
1. mybatis注解实现自动增长 在UsreMapper接口方法中, 通过@Options(useGeneratedKeys = true, keyProperty = "id") @Insert("insert into user (username,password) values (#{username},#{password})")@Options(useGeneratedKeys=true,keyProperty="id")voidsave(Useruser); ...