mybatis-plus是mybatis的增强工具, 由苞米豆开发, 在mybatis的基础上自做增强,不做修改,所以兼容mybatis的所有的语法, 实际上若是复杂sql无法通过mybatis-plus的querywapper对象查询时,我们还是使用myatis的原生的标签执行的.总之,mp有以下特点:
- 润物无声
- 只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。
- 效率至上
- 只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间。
- 丰富功能
- 热加载、代码生成、分页、性能分析等功能一应俱全。
mp的主键策略
mp自带的主键策略叫做assign_id,这是一种非常好用的主键测试, 其内部的原理就是使用了雪花算法.这个很有必要聊一下的.
普通的主键生成策略如uuid,或者自增等, 在数据量较多需要执行分库分表的时候就不是很适用了. 为了避免主键重复导致的冲突问题使用到了雪花算法
雪花算法具体使用和原理如下:
雪花算法是由Twitter公布的分布式主键生成算法,它能够保证不同表的主键的不重复性,以及相同表的主键的有序性。
- 核心思想:
- 核心思想:
- 长度共64bit(一个long型)。
- 首先是一个符号位,1bit标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,id一般是正数,所以最高位是0。
- 41bit时间截(毫秒级),存储的是时间截的差值(当前时间截 - 开始时间截),结
- 核心思想: