MyBatis Plus 3.x 中的代码生成器与代码优化
发布时间: 2023-12-20 06:46:41 阅读量: 35 订阅数: 45
# 1. 简介
## 1.1 MyBatis Plus 3.x简介
MyBatis Plus是基于MyBatis的增强工具库,可以帮助开发者更方便地使用MyBatis进行数据库操作。相比于原生的MyBatis,MyBatis Plus提供了更丰富的功能和更简化的开发流程。它可以大大提高开发效率,减少重复的编码工作。
## 1.2 代码生成器的作用和优势
代码生成器是MyBatis Plus提供的一项强大功能,它可以根据数据库表结构自动生成实体类、Mapper接口以及XML文件。通过代码生成器,我们可以快速地生成大量的基础代码,避免手动编写重复的代码,提高开发效率。
代码生成器的优势主要有以下几点:
- **快速生成代码**:通过代码生成器,可以一键生成实体类、Mapper接口和XML文件,减少手动编码的工作量。
- **一致的编码风格**:代码生成器可以根据配置文件自动生成代码,保证项目中的代码风格一致,提高代码的可读性和维护性。
- **减少错误率**:手动编写代码容易出现错误,而代码生成器可以根据数据库表结构自动生成代码,减少了手动编写的可能出现的错误。
- **易于维护和更新**:如果数据库表结构发生变化,可以通过代码生成器重新生成代码,保持代码和表结构的一致性,方便维护和更新。
接下来,我们将介绍如何开始使用代码生成器,并且展示代码生成器的一些高级用法。
# 2. 开始使用代码生成器
在本章中,我们将介绍如何开始使用代码生成器来快速生成代码。
### 2.1 安装与配置
首先,我们需要安装 MyBatis Plus 3.x,并在项目中引入相关依赖。可以通过以下 Maven 坐标来添加 MyBatis Plus 依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.x.x</version>
</dependency>
```
然后,我们需要在项目的配置文件中配置 MyBatis Plus,以便与数据库进行交互。可以在配置文件中添加以下配置:
```properties
# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# MyBatis Plus 配置
# 自动扫描的包路径
mybatis-plus.mapper-locations=classpath:mapper/*.xml
# 实体类包路径
mybatis-plus.typeAliasesPackage=com.example.entity
```
### 2.2 自动生成代码的基本步骤
使用 MyBatis Plus 的代码生成器可以在项目中自动生成实体类、Mapper 接口、Service 类和 Controller 类等代码。下面是使用代码生成器的基本步骤:
1. 在项目中创建一个名为 `CodeGenerator.java` 的 Java 类。
2. 在 `CodeGenerator.java` 类中,编写生成代码的配置信息,包括数据库连接信息、包路径和代码生成规则等。
3. 编写生成代码的入口方法,使用 MyBatis Plus 的代码生成器进行代码生成。
下面是一个示例 `CodeGenerator.java` 类的代码:
```java
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
/**
* 代码生成器
*/
public class CodeGenerator {
public static void main(String[] args) {
// 代码生成器
AutoGenerator generator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
globalConfig.setAuthor("Your Name");
globalConfig.setOpen(false); // 生成代码完成后是否打开文件夹
globalConfig.setSwagger2(true); // 开启 Swagger2 模式
globalConfig.setDateType(DateType.ONLY_DATE); // 设置日期类型
globalConfig.setIdType(IdType.AUTO); // 设置主键类型
generator.setGlobalConfig(globalConfig);
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/db_example?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("123456");
dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
generator.setDataSource(dataSourceConfig);
// 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example");
generator.setPackageInfo(packageConfig);
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNaming(N
```
0
0