某天同事突然问我,你知道Mybatis Plus的insert方法,插入数据后自增id是如何自增的吗? 我愣了一下,脑海里只想到,当在POJO类的id设置一个自增策略后,例如@TableId(value = "id",type = IdType.ID_WORKER)的注解策略时,就能实现在每次数据插入数据库时,实现id的自增,例如以下形式—— @Data@AllArgsConstructor...
mybatis-plus.global-config.worker-id: ${random.int(1,31)} 这个时候我们先看一下我们设置参数有没有生效,为了比较明显看到效果,我们直接设置worker-id为一个固定值20,再断点看一下,我们找到com.baomidou.mybatisplus.core.toolkit.IdWorker这个核心类,获取id的核心方法是com.baomidou.mybatisplus.core.toolkit....
关于autoResultMap,MyBatisPlus会自动构建一个resultMap并注入到MyBatis里(一般用不上),因为MyBatisPlus底层是MyBatis,所以MyBatisPlus只是注入了常用CRUD到MyBatis里,注入之前是动态的(根据实体类字段以及注解变化而变化),但是注入之后是静态的(等于XML配置中的内容)。 @TableId 主键注解,作用于实体类主键字段,有以下几...
某天同事突然问我,你知道Mybatis Plus的insert方法,插入数据后自增id是如何自增的吗? 我愣了一下,脑海里只想到,当在POJO类的id设置一个自增策略后,例如@TableId(value = "id",type = IdType.ID_WORKER)的注解策略时,就能实现在每次数据插入数据库时,实现id的自增,例如以下形式—— @Data @AllArgsConstruct...
在MybatisPlus中主键类型是IdType的枚举类型。 下面具体解释一下各类型的意思,并且通过实例演示他们的使用规则。 AUTO:自动增长,主要用于MySql、Sql Server支持主键自增长的数据库 NONE:没有主键 INPUT:手工输入,需要自己生成主键并且给相应属性赋值 ID_WORKER:实体类用long id,表的列用bigint,int类型大小不够 ...
百度网上的说法,当Mybatis-Plus实体类没有显示设置主键策略时,将默认使用雪花算法生成,也就是IdType.ID_WORKER或者IdType.ID_WORKER_STR,具体是long类型的19位还是字符串的19位,应该是根据字段定义类型来判断。 snowflake算法是Twitter开源的分布式ID生成算法,结果是一个long类型的ID 。其核心思想:使用41bit作为毫秒...
这就很奇怪了,目前该表数据量很少,且主键是设置AUTO_INCREMENT,正常而言,应该自增id仍在1000范围内,但目前已经变成一串长数字。 底层ORM框架用的是Mybatis-Plus,我寻思了一下,这看起来像是在插入数据库旧自动生成的id,导致并非默认使用MySql的自增AUTO_INCREMENT的id。
我们可以发现在 mybatis-plus 中的主键生成策略有 8 种: AUTO:主键自增(数据库主键需要设置自增) NONE:如果你要操作的表中没有设置主键,那么可以使用 IdType.NONE 策略。 INPUT:插入数据前自行设置主键。如果你自定义了主键生成算法,那么可以使用 IdType.INPUT 策略。 ASSIGN_ID:如果不设置类型值,默认则使用 ...
AUTO(0), // 数据库id自增 NONE(1), // 未设置主键 INPUT(2), // 手动输入 ID_WORKER(3), // 默认的全局唯一id UUID(4), // 全局唯一id uuid ID_WORKER_STR(5); // ID_WORKER字符串表示法 参考: 分布式系统唯一ID生成方案汇总 UUID 、GUID、COMB 的区别与联系 ...
mybatisplus 用redis生成workerid mybatis和redis整合,最近笔者在搭一个自己的小框架,基于SpringBoot全家桶整合了SpringSecurity、Redis、MyBatis-Plus、RSA加密等,所以我打算将搭建过程记录下来以做学习只用,好了废话不多说,下面开始。针对Redis在项目中的使用场景,