文章目录
- 为什么要学呢?
- 注意事项
- 简单入门案例
- 配置日志
- 雪花算法
- 更改 ID 的方法
- CRUD
- 插入(不解释了,代码非常简单)
- 更新
- 查询(批量查询)
- 按条件查询
- 分页查询
- 删除(批量、通过条件、逻辑删除)
- 批量删除
- 通过条件删除
- 逻辑删除
- wapper 条件查询器
- 模糊查询
- 自动填充
- 数据库级别
- 代码级别
- 乐观锁处理
- 乐观锁的使用方式
- 性能分析插件
- 代码生成器
为什么要学呢?
节省了我们的大量时间,所有的 CRUD 代码几乎都可以自动生成(偷懒的,就例如 Lombok 一样)
特性:无侵入、损耗小、逐渐自动生成、内置分页插件、内置全局拦截插件、支持多种数据库等……
注意事项
注意:尽量不要把 mybatis 和 mybatis-plus 一起导入,可能会有版本差异。
简单入门案例
pojo:
dao:
services:
Test:
很简单的两部,没有配置 XML 文件 , 就几乎有了 Mapper 中 80% 的方法。(具体有哪些方法,没有展示,大家自己点开源码,就可以看到哦~~ )
配置日志
我们要是想看到具体是怎么执行的?那就要配置日志了,也非常的简单,方法如下:
雪花算法
了解:在分布式系统中,唯一ID的生成和管理是一项重要而棘手的任务。雪花算法,由Twitter开源的一种分布式ID生成算法。雪花算法是一种全局ID生成算法,其核心思想是将64位的long型ID分为四个部分,分别为:时间戳、工作机器ID、数据中心ID和序列号。通过将数据映射到具有特定结构的分布式系统中,实现数据的存储和查询。该算法由一系列节点组成,每个节点负责存储数据的一部分。这些节点通过哈希函数将数据映射到特定的位置,形成类似于雪花结构的分布式系统。通过这种方式,雪花算法能够在分布式系统中保证ID的唯一性和有序性。
更改 ID 的方法
CRUD
插入(不解释了,代码非常简单)
更新
注意理解一下,根据 ID 更新。参数需要的可是 实体类 哦 ~~ 。 需要更新啥,实体类就设置啥呢!
查询(批量查询)
按条件查询
分页查询
@Configuration
@MapperScan("com.xiao.dao")
public class MPconfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
// 分页插件
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);// 设置数据库为mysql
paginationInnerInterceptor.setMaxLimit(1000L); // 设置最大查询数量,防止一次查询太多数据,给数据库压力过大
// 添加分页插件
interceptor.addInnerInterceptor(paginationInnerInterceptor);
return interceptor;
}
}
删除(批量、通过条件、逻辑删除)
批量删除
通过条件删除
逻辑删除
wapper 条件查询器
模糊查询
自动填充
数据库级别
代码级别
乐观锁处理
乐观锁:顾名思义 ⇒ 十分乐观,总是以为不会出现问题,无论干什么都不去上锁!如果出现了问题,就在更新值了然后测试。
悲观锁:顾名思义 ⇒ 十分悲观。无论干什么都感觉会出问题,都去上锁!
乐观锁失败案例如下:
在被另外一个线程插队的情况下,则可能会被覆盖。
乐观锁的使用方式
性能分析插件
用于分析每条sql的执行时间
代码生成器
可以官网了解一下,这玩意有些厉害了,