4.Mybatis Plus

Mybatis Plus 学习
第一章 Hello Mybatis Plus
STEP1: 数据库建表
1 | use study_mybatis_plus; |
SETP2: Maven依赖
1 | <!--3.整合Mybatis Plus--> |
STEP3: 配置数据库和日志
1 | # 数据源配置 |
STEP4: 实体类
1 | package com.mts.entity; |
STEP5: DAO/Mapper层改造
- & 解释: 持久化层的接口①直接继承
BaseMapper<Object>具体有哪些方法?
1 | package com.mts.mapper; |
SETP6: Service层改造
- & 解释: 接口①直接继承
IService<Object>
1 | package com.mts.service; |
- & 解释: 实现类 ①继承
ServiceImpl<XXXMapper, Object>②实现 服务层接口 具体有哪写方法
1 | package com.mts.service.impl; |
STEP7: 测试
1 | package com.mts.test; |
第二章 基本使用
第一节 @TableName
- 作用: 解决实体和数据库表名字不一致的问题
第二节 @TableField
- ①解决实体中字段和数据库字段不一致的问题
- ②
exit=false解决实体有, 但数据库中没有的字段 - ③
select = false默认select是查询所有, 标注了的不会查询, 全是null
第三节 @TableId
- 作用:
@TableId(type=IdType.AUTD)插入时默认是UUID生成自增的ID, 加了主键才会自增
第四节 逻辑删除@TableLogic
- 实现方式一: 全局配置(但保证所有表的逻辑删字段都为一个名字)
1 | # 逻辑删 |
- 实现方式二:
@TableLogic注解: 在需要的字段上面标记即可
第五节 乐观锁🔒@Version
STEP1: 添加乐观锁拦截器
- 回顾: 有
@Configuration注解的都是配置类;@Bean是注入一个对象, 这里注入的是一个MybatisPlusInterceptor类的对象
1 | package com.mts.config; |
STEP2: 控制版本号的字段上加@Version
- ! 控制版本号的字段名字随意
1 | package com.mts.entity; |
第六节 分页
STEP1: Maven依赖
- ! 提示: 于 v3.5.9 起,PaginationInnerInterceptor 已分离出来。如需使用,则需单独引入 mybatis-plus-jsqlparser 依赖 , 具体请查看 安装 一章。
1 | <!--分页插件--> |
STEP2: 编写拦截器
1 | package com.mts.config; |
STEP3: 实现分页
1 | // 分页 |
第七节 条件构造器
官网: 条件构造器] 用到什么查什么, 这里只是给出一些需求的例子
2.7.1 QueryWrapper示例
- ! 注意: 支持链式编程
1 |
|
2.7.2 LambdaQueryWrapper示例
- 语法: 方法引用
User::getId是指向User类中的getId方法的引用 - 对比QueryWrapper的好处: ①避免了硬编码字段名 ②避免手瓢写错
1 |
|
第三章 代码生成器
题外话: Mybatis的那个代码生成器, 堪比折磨, 4种模式, 配置麻烦的要死; 相比之下MP就简单太多了
SETP1: Mavne依赖
1 | <!--MP 代码生成器--> |
SETP2: 编写代码生成器
1 | package com.mts.auto_generator; |
- Title: 4.Mybatis Plus
- Author: 明廷盛
- Created at : 2025-02-15 21:56:34
- Updated at : 2025-02-17 16:22:00
- Link: https://blog.20040424.xyz/2025/02/15/😼Java全栈工程师/第四部分 中间件/4.Mybatis Plus/
- License: All Rights Reserved © 明廷盛