【Java-MyBatis】MyBatis-Plus 是什么框架?
·

MyBatis-Plus(简称 MP)是一个国产的开源框架,它是 MyBatis 的增强工具,在保留 MyBatis 所有特性的基础上,增加了许多实用功能,可以显著简化数据库操作开发。下面我用通俗易懂的方式解释:
一、核心定位:MyBatis 的「超级助手」
想象一下,你原来用 MyBatis 操作数据库时:
- 需要手动写大量 SQL
- 每个实体类都要重复写 CRUD 方法
- 分页查询要自己计算页码
- 条件查询要拼接字符串
MyBatis-Plus 的作用就是帮你自动化这些重复劳动,相当于给 MyBatis 装了个智能插件,核心特点是:只做增强,不做改变(你原有的 MyBatis 配置和代码完全兼容)。
二、核心功能(超能力展示)
-
自动 CRUD
只需要让 Mapper 接口继承Base<T>,立刻获得 20+ 常用方法:// 传统 MyBatis 需要手写 SQL 的方法 userMapper.insert(user); userMapper.selectById(1); userMapper.updateById(user); // MP 直接免费赠送! -
条件构造器(QueryWrapper)
用链式调用代替 SQL 拼接:// 查询年龄>18且姓"张"的用户 new QueryWrapper<User>() .gt("age", 18) .likeRight("name", "张") .list(); -
分页插件
两行代码搞定物理分页:Page<User> page = new Page<>(1, 10); // 第1页,每页10条 userMapper.selectPage(page, queryWrapper); -
代码生成器
自动生成 Entity/Mapper/Service/Controller:AutoGenerator generator = new AutoGenerator(); generator.setStrategy(strategyConfig); generator.execute(); // 一键生成全套代码 -
乐观锁插件
解决高并发下的数据冲突:UPDATE user SET name=?, version=version+1 WHERE id=? AND version=?
三、举个真实场景
故事:小明的开发日常
小明用原生 MyBatis 开发用户管理模块:
- ✅ 写
UserMapper.xml配了 200 行 SQL - ✅ 实现了
insert/delete/update/select… - 😫 产品经理新增需求:按年龄分页查询
改用 MyBatis-Plus 后:
// 1. 继承BaseMapper获得基础方法
public interface UserMapper extends BaseMapper<User> {}
// 2. 分页查询(5行代码)
Page<User> page = new Page<>(1, 10);
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.gt("age", 18);
Page<User> result = userMapper.selectPage(page, wrapper);
👉 效果:开发时间从 2 天 → 20分钟,SQL 错误率降为 0。
四、总结
| 特性 | 原生 MyBatis | MyBatis-Plus |
|---|---|---|
| CRUD 基础方法 | 手动实现 | ✅ 自动生成 |
| 条件查询 | 拼接 SQL | ✅ 链式调用 |
| 分页 | 手写 limit | ✅ 封装分页对象 |
| 代码量 | 冗余 | ️ 减少 80% |
| 学习成本 | 较高 | ️ 降低 50% |
核心价值:
✨ 让开发者更专注于业务逻辑,而不是重复的数据库操作 ✨
本质上,它是 Java 持久层开发的「效率加速器」,特别适合中大型项目快速迭代。
五、学习建议图谱

更多推荐


所有评论(0)