mybatisPlus反向生成
时间: 2025-03-21 12:09:16 浏览: 25
### MyBatisPlus 反向工程代码生成教程
MyBatisPlus 是一款增强型的 MyBatis 框架,它简化了数据库操作并提供了许多便捷的功能。其中一个重要特性就是支持通过反向工程自动生成实体类、Mapper 接口以及 XML 配置文件。
以下是关于如何使用 MyBatisPlus 进行反向工程生成代码的相关说明:
#### 1. 添加依赖项
为了实现反向工程功能,需要引入 `mybatis-plus-generator` 和模板引擎(如 FreeMarker 或 Velocity)。以下是一个典型的 Maven 项目中的配置示例[^4]:
```xml
<dependencies>
<!-- MyBatis Plus Core -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- Generator Module -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<!-- Template Engine (FreeMarker) -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
<!-- Database Driver (Example: MySQL Connector) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
```
#### 2. 编写代码生成器配置
创建一个 Java 类来定义代码生成的具体参数和逻辑。下面展示了一个完整的代码生成器实例:
```java
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
public class CodeGenerator {
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
// 设置全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java"); // 输出目录
gc.setAuthor("Your Name"); // 开发者名称
gc.setOpen(false); // 是否打开输出目录
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("password");
mpg.setDataSource(dsc);
// 包名策略配置
PackageConfig pc = new PackageConfig();
pc.setParent("com.example.yourprojectname");
pc.setEntity("entity"); // 实体类包路径
pc.setMapper("mapper"); // Mapper接口包路径
pc.setXml("mapper.xml"); // 映射XML文件路径
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude("table_1", "table_2"); // 要生成表的名字列表
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true); // 使用 Lombok 注解
strategy.setRestControllerStyle(true); // REST 控制器风格
mpg.setStrategy(strategy);
// 执行生成
mpg.execute();
}
}
```
上述代码实现了以下几个核心功能:
- **数据源连接**: 定义目标数据库及其访问凭证。
- **包结构管理**: 自动分配不同类型的文件到指定子包下。
- **命名转换规则**: 将数据库字段名从下划线分隔形式映射为驼峰命名法。
- **其他选项定制化**: 如启用 Lombok 支持减少样板代码量等。
#### 3. 结果验证与调整
运行此程序后,在项目的 src/main/java 下将会看到按照设定好的层次划分出来的多个新文件夹及对应的 .java 文件。这些文件包含了基于现有数据库模式构建而成的基础 CRUD 方法声明以及其他辅助属性定义等内容[^5]。
---
####
阅读全文
相关推荐

















