技术派整合MyBatis-Plus
大家好,我是二哥呀。
今天由我来给大家讲一下《技术派整合MyBatis-Plus的基本使用》。顾名思义,MyBatis-Plus 是 MyBatis 的一个增强,提供了一些额外的功能,比如说条件构造器、分页插件、代码生成器等等以便我们能更专注于业务逻辑,而不是 SQL 语句的编写。
MyBatis-Plus 的源码也是开源的,在 GitHub 上已经收获了 14.5k+ 的 star,非常受欢迎。如果打算学习源码的同学可以尝试一下。

MyBatis-Plus 还提供了官方文档,对 MyBatis-Plus 的入门、核心功能、扩展功能,以及插件功能做了详细地介绍,大家可以通过官方文档进行查漏补缺。
整合 MyBatis-Plus
技术派中整合 MyBatis-Plus 的方式非常简单。第一步,在 pom.xml 中引入 starter。
com.baomidou
mybatis-plus-boot-starter
第二步,使用 @MapperScan 注解扫描 mapper 文件。
@Configuration
@ComponentScan("com.github.paicoding.forum.service")
@MapperScan(basePackages = {
"com.github.paicoding.forum.service.article.repository.mapper",
"com.github.paicoding.forum.service.user.repository.mapper",
"com.github.paicoding.forum.service.comment.repository.mapper",
"com.github.paicoding.forum.service.config.repository.mapper",
"com.github.paicoding.forum.service.statistics.repository.mapper",
"com.github.paicoding.forum.service.notify.repository.mapper",})
public class ServiceAutoConfig {
}
ServiceAutoConfig 是单独的配置类,mapper 接口按照业务进行了分类,mapper.xml 放在 resources 目录下。有一说一,技术派这样的目录结构非常的清晰,井井有条,一目了然。

第三步,在 application.yml 文件中增加MyBatis-Plus 的统一配置。
# mybatis 相关统一配置
mybatis-plus:
configuration:
#开启下划线转驼峰
map-underscore-to-camel-case: true
map-underscore-to-camel-case: true 的作用是将数据库表中的下划线命名方式(underscore case)映射为 Java 对象中的驼峰命名方式(camel case)。例如,数据库表中的列名为 user_name,对应的 Java 对象的属性名为 userName。
OK,以上三步就完成了 MyBatis-Plus 和 Spring Boot 项目的整合。接下来,我们来一一介绍 MyBatis-Plus 的基本使用,包括新增、注解、查询、条件构造器、自定义 SQL、分页查询、更新删除、AR 模式、主键策略,以及通过 service。
MyBatis-Plus 的基本使用
Service CRUD
技术派中的通用增删改查是通过 MyBatis-Plus 的 Service CRUD 接口实现的。
比如说我们要保存一个文章的标签🏷,可以通过这种方式。
@Autowired
private TagDao tagDao;
tagDao.save(tagDO);
1、tagDao 是我们定义的数据访问对象(Data Access Object,简称 DAO),它继承自 MyBatis-Plus 提供的 ServiceImpl 类。@Autowired 注解将 TagDao 自动注入到当前类中。这是 Spring 提供的依赖注入(DI)功能,可以让我们在当前类中方便地使用 TagDao。
@Repository
public class TagDao extends ServiceImpl {
①、@Repository 注解:这是 Spring 提供的注解,用于标识这个类是一个数据访问层(DAO)组件。Spring 会自动扫描并将其实例化为一个 Bean,方便在其他类中通过依赖注入(DI)使用。
②、ServiceImpl:ServiceImpl 是 MyBatis-Plus 提供的一个抽象类,提供了通用的 CRUD 方法。泛型参数 意味着 TagDao 类主要用于处理 TagDO 数据对象的数据库操作,并使用 TagMapper 接口定义的方法进行操作。
通过继承 ServiceImpl 类,TagDao 就可以使用 MyBatis-Plus 提供的通用 CRUD 方法,如 save、getById、updateById 等。这些方法已经实现了基本的数据库操作,通常无需自己编写 SQL 语句。
/**
* IService 实现类( 泛型:M 是 mapper 对象,T 是实体 )
*
* @author hubin
* @since 2018-06-23
*/
@SuppressWarnings("unchecked")
public class ServiceImpl, T> implements IService {
}
2、参数 tagDO 是一个数据对象(Data Object,简称 DO),表示数据库中的 tag 表。
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("tag")
public class TagDO extends BaseDO {
private static final long serialVersionUID = 3796460143933607644L;
/**
* 标签名称
*/
private String tagName;
/**
* 标签类型:1-系统标签,2-自定义标签
*/
private Integer tagType;
/**
* 状态:0-未发布,1-已发布
*/
private Integer status;
/**
* 是否删除
*/
private Integer deleted;
}
①、@Data 注解是 Lombok 提供的,用于自动生成类的 getter...
未能定位到原文的划线
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
真诚点赞 诚不我欺
回复