MyBatis-Plus 入门:在 MyBatis 之上少写哪些 SQL?
知识背景
MyBatis 是半自动 ORM:SQL 由开发者编写,通过 XML 或注解映射参数与结果。MyBatis-Plus(MP) 在不动 MyBatis 内核的前提下,提供 通用 Mapper、Service 封装、条件构造器、分页插件 等能力,让单表 CRUD 大量减少样板代码。
它不是 MyBatis 的替代品,而是增强包;复杂 SQL 仍建议手写 XML。
知识详解与通俗解释
1. 与原生 MyBatis 的分工
| 场景 | 倾向 |
|---|---|
| 单表增删改查、按主键/简单条件查询 | MP 的 BaseMapper、IService |
| 多表关联、复杂统计、动态大 SQL | 继续 MyBatis XML / @Select |
通俗说:MP 帮你把「搬砖式单表操作」自动化;复杂查询仍要自己写 SQL,避免为了用 MP 硬凑 Lambda 条件。
2. 核心概念:实体 + BaseMapper
实体类上用 MP 注解(如 @TableName、@TableId)标明表名与主键策略;Mapper 接口继承 BaseMapper<Entity> 后,即拥有 insert、deleteById、updateById、selectById 等方法,无需 XML。
3. IService / ServiceImpl
对业务层再包一层:批量保存、链式 lambdaQuery() 等,适合 Service 层默认写法;小项目也可直接在 Controller 调 Mapper,但分层更清晰时用上 Service。
4. 版本与 Spring Boot
实际项目通过 mybatis-plus-boot-starter 与 Spring Boot 集成,并配置数据源与 @MapperScan。具体依赖版本以官方文档为准。
总结
- MP = MyBatis + 通用 CRUD + 插件生态,适合提高单表开发效率。
- 复杂 SQL 不要硬塞 Lambda,该写 XML 就写 XML。
- 下一篇可深入:条件构造、分页、自动填充、逻辑删除。