接下来,验证一番后,发现,Mybatis-Plus在做insert操作时,确实自动生成一条长19的数字当做该条数据的id插入到MySql,导致虽然MySql表设置了自增,但被Mybatis-Plus生成的id为1468844351843872769所影响,导致下一条数据自动递增值变成1468844351843872770,这种过长的id值,在做索引维护时,是很影响效率,占用空间过大,故而,这...
发现mybatis-plus默认的主键生成是全局唯一的UUID,会导致生成的id过长。 并且官方也提供了解决方法,如下图 可这只是将防止了前端接收时的精度丢失,并没有解决我的问题。 根据文档,可以得出一个新的解决办法,并且不用更改DO类代码: 将文档中所说的id-type配置设置为0即可。 Mybatis-Plus id主键生成的问题 简要...
生成的19位对于java long类型来说没有任何问题,问题在于我们给前端返回的时候,前端js最长只能支持到17位的数值类型,后面两位会补0,也就是说,比如一条数据的ID为:133470684736716869,到前端看起来就会变成1334706847367100,这就导致后续的业务会报错。 2. 解决方案 现在你知道了问题的原因在于JS无法解析1...
3、当需要生成UUID(均为17位)时,使用的方法如下 @MapperpublicinterfaceCommonMapper{// 返回Long型UUID@Select("SELECT UUID_SHORT()")LonggetShortUUid();} // 返回String类型的UUID@Select("SELECT UUID_SHORT()")StringgetShortStrUUid(); 4、当分页查询该表(t_user)时,由于返回的id均为Long型,在前端被...
(3),//默认全局idUUID (4),//全局唯一id uuidID_WORKER_STR (5);//ID_WORKER字符串表示} 对应id字段添加主键生成策略 packagecom.wei.pojo;importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableId;importlombok.AllArgsConstructor;importlombok.Data;importlombok.No...
mybatis-plus自3.3.0开始,默认使用雪花算法+UUID(不含中划线),但是它并没有强制让开发者配置机器号。这一点很是疑惑,这样可能会让不了解雪花算法的人埋下了一个坑。 但是这么强大的一个框架难道真的没有做优化吗?带着问题,查看了下mybatis-plus雪花算法源码com.baomidou.mybatisplus.core.toolkit.Sequence。最终...
主键类型设置为varchar,长度要大于32,因为UUID生成的主键为32位,如果长度小的话就会导致插入失败 3、添加数据不设置ID @SpringBootTestclass Mybatisplus03DqlApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testSave(){User user = new User();user.setName("夏志121");user.setPassword("xiaz...
baomidou/mybatis-plusPublic NotificationsYou must be signed in to change notification settings Fork4.3k Star16.4k New issue KevinCGHopened this issueAug 3, 2018· 3 comments KevinCGHcommentedAug 3, 2018 如题,目前配置id-type: uuid,自动生成的是32位的uuid ...
@TableId(type = IdType.ASSIGN_UUID) private String id; private String userName; private String passWord; } 3,AUTO(数据库 ID 自增) 对于像 MySQL 这样的支持主键自动递增的数据库,我们可以使用 IdType.AUTO 策略。 1 2 3 4 5 6 7 8 @Data public class UserInfo { //指定主键使用数据库ID自增...