MyBatis-plus 新增实例,主键ID从很大的数字开始 mybatis-plus是mybatis增强版,用mybatis-plus可以省去很多DAO层代码和数据库操作语句的编写。但是需要我们配置好条件。 情景: 向数据库新增一条实例,我们要调用 insert(T t)方法;向数据库批量新增实例,我们调用inserBatch(List<T> list)方法。 当然,这些都是mybati...
MyBatis-plus 新增实例,主键ID从很大的数字开始 mybatis-plus是mybatis增强版,用mybatis-plus可以省去很多DAO层代码和数据库操作语句的编写。但是需要我们配置好条件。 情景: 向数据库新增一条实例,我们要调用 insert(T t)方法;向数据库批量新增实例,我们调用inserBatch(List<T> list)方法。 当然,这些都是mybati...
第一种(推荐): 在主键上面添加注解: @TableId(value="id",type = IdType.AUTO),id为数据库索引字段,重新部署后台程序,然后重新恢复数据库表对应的自增方式,处理历史数据。设置数据库把自动递增改成正常的数字,就是删除现在不正确的数据,然后设置成1,或者改成目前最大的一个数字,比如正常的是最大为...
接下来,验证一番后,发现,Mybatis-Plus在做insert操作时,确实自动生成一条长19的数字当做该条数据的id插入到MySql,导致虽然MySql表设置了自增,但被Mybatis-Plus生成的id为1468844351843872769所影响,导致下一条数据自动递增值变成1468844351843872770,这种过长的id值,在做索引维护时,是很影响效率,占用空间过大,故而,这...
这就很奇怪了,目前该表数据量很少,且主键是设置AUTO_INCREMENT,正常而言,应该自增id仍在1000范围内,但目前已经变成一串长数字。 底层ORM框架用的是Mybatis-Plus,我寻思了一下,这看起来像是在插入数据库旧自动生成的id,导致并非默认使用MySql的自增AUTO_INCREMENT的id。
排查原因发现是引用了mybatis-plus组件,该组件会自动插入一个id到实体对象, 不管你封装与否,这就导致了出现id变的非常大的原因: 默认是生成一个长数字字符串(编码不同可能结尾带有字母) 且实体类主键上面只添加了@TableId 解决方案: 第一种(推荐): 在主键上面添加注解: @TableId(value="id",type = IdType....
Debug到这里,可以看到,如果没有 @TableId 注解显示设置主键策略情况下,默认设置的是 ID_WORKER(3),即会根据雪花算法生成19位数字,long类型。 可以进一步发现,这里的 dbConfig是GlobalConfig.DbConfig实例,进入到DbConfig类,可以看到原来实体类映射的数据库设置在这里,主键类型默认是IdType.ID_WORKER。
@TableId 主键注解 作用:声明实体类中的主键对应的字段。 IdType 主键类型 开始新增数据 测试表准备好后,我们准备开始演示新增数据。实际上,Mybatis Plus 对 Mapper 层和 Service 层都将常见的增删改查操作都封装好了,只需简单的继承,即可轻松搞定对数据的增删改查,本文重点讲解新增数据这块。
这篇文章主要介绍“MybatisPlus使用@TableId主键id自增长无效如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MybatisPlus使用@TableId主键id自增长无效如何解决”文章能帮助大家解决问题。 问题情况: 在使用 @TableId(type = IdType.AUTO)之后添加的id数字特别大 ...
1.2、id主键自增不连续 2、自动填充数据功能 代码级别 1)使用注解@TableField 2)数据库中新增字段 3)自定义实现类处理注解 3)测试 数据库级别 3、代码生成器 方式一:下插件 方式二:写代码 4、逻辑删除 1)数据库中添加字段 2)实体类上加注解 3)配置文件 ...