
1. 引言MyBatis-Plus(简称 MP)是 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它内置了通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表的大部分 CRUD 操作,更有强大的条件构造器,可以满足各类复杂查询需求。本文将带你从零开始认识 MyBatis-Plus,通过一个完整的入门案例快速上手,并详细讲解常用的注解与核心配置,帮助你快速掌握这一主流开发利器。目录1. 引言2. MyBatis-Plus 简介2.1 什么是 MyBatis-Plus2.2 为什么选择 MyBatis-Plus3. 环境准备3.1 环境要求3.2 创建 Spring Boot 项目3.3 配置数据源4. 入门案例4.1 创建数据库表4.2 创建实体类4.3 创建 Mapper 接口4.4 编写测试代码4.5 条件构造器查询5. 常用注解详解5.1 @TableName5.2 @TableId5.3 @TableField5.4 @TableLogic5.5 @Version5.6 @EnumValue6. 常用配置详解6.1 全局配置6.2 日志配置6.3 分页插件配置6.4 乐观锁插件配置6.5 性能分析插件6.6 自动填充配置7. 代码生成器实战7.1 添加依赖7.2 编写生成器代码7.3 执行生成7.4 生成后的目录结构8. 总结2. MyBatis-Plus 简介2.1 什么是 MyBatis-PlusMyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它的核心特性包括:无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作。强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求。支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错。支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器),可自由配置,完美解决主键问题。支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作。支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )。内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用。内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询。分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库。内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询。内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作。2.2 为什么选择 MyBatis-Plus在传统的 MyBatis 开发中,即使是一个简单的单表查询,也需要编写对应的 SQL 语句和映射文件。而 MyBatis-Plus 通过内置的通用 Mapper,让开发者无需编写 SQL 即可完成大部分单表操作,大幅提升了开发效率。3. 环境准备3.1 环境要求JDK 8 及以上Maven 3.5+MySQL 5.7 及以上(或其他支持的数据库)Spring Boot 2.x 或 3.x3.2 创建 Spring Boot 项目首先,通过 Spring Initializr 创建一个 Spring Boot 项目,并添加以下依赖:dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.3.1/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency注意:如果使用 Spring Boot 3.x,请使用mybatis-plus-spring-boot3-starter依赖。3.3 配置数据源在application.yml中配置数据源信息:spring:datasource:driver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/mybatis_plus_demo?useUnicode=truecharacterEncoding=utf8serverTimezone=Asia/Shanghaiusername:rootpassword:123456mybatis-plus:configuration:log-impl:org.apache.ibatis.logging.stdout.StdOutImpl4. 入门案例4.1 创建数据库表首先,在数据库中创建一张用户表:CREATETABLE`user`(`id`bigint(20)NOTNULLAUTO_INCREMENTCOMMENT'主键ID',`name`varchar(30)DEFAULTNULLCOMMENT'姓名',`age`int(11)DEFAULTNULLCOMMENT'年龄',`email`varchar(50)DEFAULTNULLCOMMENT'邮箱',`create_time`datetimeDEFAULTNULLCOMMENT'创建时间',`update_time`datetimeDEFAULTNULLCOMMENT'更新时间',PRIMARY