原创/朱季谦 某天检查一位离职同事写的代码,发现其对应表虽然设置了AUTO_INCREMENT自增,但页面新增功能生成的数据主键id很诡异,长度达到了19位,且不是从1开始递增的-- 我检查了一下,发现该表目前自增主键已经变成从1468844351843872770开始递增了-- 这就很奇怪了,目前该表数据量很少,且主键是设置AUTO_INCREMENT,正常而言,应该自增id仍在1000范围内,但目前已经变成一串长数字. 底层ORM框架用的是Mybatis-Plus,我寻思了一下,这看起来像是…
MybatisPlus生成主键策略方法 全局id生成策略[因为是全局id所以不推荐] SpringBoot集成Mybatis-Plus 在yaml配置文件中添加MP配置 mybatis-plus: global-config: db-config: #主键类型(auto:"自增id",assign_id:"全局唯一id(雪花算法,Long或者String类型)", assign_uuid:"全局唯一id(无中划线的uuid)",input:&qu…
一.主键id的生成 数据库表里通常都会有一个主键id,来作为这条数据的唯一标识. 常见的方式 数据库自动增长 这种很常见了,可以做到全库唯一.因为id是天然排序的,对于涉及到排序的操作会很方便. UUID 上面的自动增长,虽然简单,但是对于分表这样的操作来说就比较麻烦.因为你在第二张插入数据的时候,需要拿到上一张表最后一个数据的id. UUID则不同,每次都一个随机唯一的值,不过因为是随机,所以也就没有排序了. redis redis也可以用来生成id,利用redis的原子操作.好处是可以不依赖…
如下: CREATE TABLE `loginlog` ( `id` ) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT '主键编号', `IP` varchar() NOT NULL COMMENT 'ip地址主键', `version` ) NOT NULL DEFAULT ' COMMENT '登录次数', `address` varchar() NOT NULL COMMENT '登录地址', `loginTime` TIMESTAMP…
使用MyBatis的时候,主键的字段建议绑定在Bean的属性上面, import javax.persistence.*; public class User { @Id @Column(name = "systemId") private Long systemid; } 否则会报错,以下是报错原文 "### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 's…
函数的调用方式为: select pkg1.fun1 from dual; mybatis-plus一般会使用的主键生成策略为: @Bean public OracleKeyGenerator oracleKeyGenerator(){ return new OracleKeyGenerator(); } 此处由于要使用自定义主键生成策略,所以就不需要以上Bean了. 自定义主键生成策略: @Slf4j @Component("mybatisPlusKeyGenerator") pub…
mybatis-plus是mybatis增强版,用mybatis-plus可以省去很多DAO层代码和数据库操作语句的编写.但是需要我们配置好条件. 情景: 向数据库新增一条实例,我们要调用 insert(T t)方法:向数据库批量新增实例,我们调用inserBatch(List<T> list)方法. 当然,这些都是mybatis-plus已经封装好的,我们直接用,DAO层代码和xml文件不用自己编写.但是,我们数据库新增实例,主键ID一般都是自增长的,不用人工给它赋值. 那么mybatis-…
本文为mybatis系列文档的第6篇,前5篇请访问下面的网址. 小书MybatisPlus第1篇-整合SpringBoot快速开始增删改查 小书MybatisPlus第2篇-条件构造器的应用及总结 小书MybatisPlus第3篇-自定义SQL 小书MybatisPlus第4篇-表格分页与下拉分页查询 小书MybatisPlus第5篇-Active Record模式精讲 Mybatis Plus 为我们提供了三种设置 主键生成策略的方式.它们的优先级顺序是:局部注解 > 全局 > 默认(雪花算…
转载:MyBatisplus -- ActiveRecord(AR)_mybatisplus idtype.auto_憨憨浩浩的博客-CSDN博客 0.auto:自动增长(mysql,sql server)1.none:没有主键2.input:手动输入3.id_worker:实体类使用Long id,表的列使用bigint,int类型长度不够,Twittter雪花算大-分布式ID.4.uuid:实体类使用String id,列使用Varchar 50.5.id_worker_str:实体类使用S…
LZ做练手设计的时候有这样一个订单需求,先插入订单表数据(t_order),再写入订单详情表(t_orderDetail),详情表需要有一个与t_order的外键约束 t_order ( oid     auto_increment     primary key ) t_orderDetail ( oid 外键约束需要t_order存在这个oid ) 因为t_orderDetail ->(oid) 是外键约束于t_order->(oid),所以需要先插入t_order再给t_orderDet…