Files
2025-06-13 09:41:48 +08:00

148 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Play Generator - 代码生成器
这是一个独立的代码生成器工具,可以通过 main 方法直接运行生成代码。
## 功能特性
- 支持 MySQL 数据库表结构读取
- 自动生成 Entity、Mapper、Service、Controller 等代码文件
- 基于 Velocity 模板引擎
- 支持批量生成多个表
- 可自定义输出目录和包名
## 使用方法
提供两种方式来使用代码生成器:
### 方式一:使用配置文件(推荐)
#### 1. 修改配置文件
编辑 `src/main/resources/config.properties` 文件:
```properties
# 数据库配置
db.url=jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
db.driver=com.mysql.cj.jdbc.Driver
db.username=your_username
db.password=your_password
# 代码生成配置
gen.author=your_name
gen.packageName=com.your.package
gen.outputDir=./generated-code
gen.autoRemovePre=false
gen.tablePrefix=sys_
gen.tplCategory=crud
# 要生成的表名,多个表名用逗号分隔
gen.tableNames=your_table1,your_table2,your_table3
```
#### 2. 运行生成器
直接运行 `MainGeneratorWithConfig.main()` 方法或使用脚本:
- Windows: 双击 `run.bat`
- Linux/Mac: 执行 `./run.sh`
### 方式二:代码配置
#### 1. 配置数据库连接
编辑 `MainGenerator.java` 文件中的数据库配置:
```java
// 数据库配置
GeneratorConfig config = new GeneratorConfig();
config.setUrl("jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
config.setDriverName("com.mysql.cj.jdbc.Driver");
config.setUsername("your_username");
config.setPassword("your_password");
```
#### 2. 配置生成参数
```java
// 生成配置
config.setAuthor("your_name");
config.setPackageName("com.your.package");
config.setOutputDir("./generated-code");
config.setAutoRemovePre(false);
config.setTablePrefix("sys_");
```
#### 3. 指定要生成的表名
```java
// 要生成的表名(可以配置多个)
String[] tableNames = {
"your_table1",
"your_table2",
"your_table3"
};
```
### 4. 运行生成器
#### 方式一:通过 Maven 运行
```bash
mvn clean compile exec:java
```
#### 方式二:通过 IDE 运行
直接运行 `MainGenerator.main()` 方法
#### 方式三:打包后运行
```bash
mvn clean package
java -cp target/classes:target/lib/* com.starry.generator.MainGenerator
```
## 生成的代码结构
```
generated-code/
├── src/main/java/com/your/package/
│ ├── entity/ # 实体类
│ ├── mapper/ # Mapper 接口
│ ├── service/ # Service 接口
│ ├── service/impl/ # Service 实现类
│ └── controller/ # Controller 类
└── src/main/resources/
└── mapper/ # MyBatis XML 文件
```
## 配置参数说明
| 参数 | 说明 | 默认值 |
|------|------|--------|
| url | 数据库连接地址 | - |
| driverName | 数据库驱动类名 | com.mysql.cj.jdbc.Driver |
| username | 数据库用户名 | - |
| password | 数据库密码 | - |
| author | 代码作者 | admin |
| packageName | 生成代码的包名 | com.starry.play |
| outputDir | 代码输出目录 | ./generated-code |
| autoRemovePre | 是否自动移除表前缀 | false |
| tablePrefix | 表前缀 | sys_ |
| tplCategory | 模板类型(crud/tree/sub) | crud |
## 注意事项
1. **重要**:首次使用前,请修改 `src/main/resources/config.properties` 文件中的数据库连接信息
2. 确保数据库连接正常,数据库服务器可访问
3. 确保指定的表存在于数据库中
4. 生成的代码会覆盖同名文件,请注意备份
5. 支持的数据库类型MySQL 5.7+
6. 确保数据库用户有足够的权限读取表结构信息
## 常见问题
### Q: 如何自定义模板?
A: 模板文件位于 `src/main/resources/vm/` 目录下,可以根据需要修改 `.vm` 文件。
### Q: 如何修改生成的文件结构?
A: 修改 `CodeGenerator.getFileName()` 方法中的文件路径逻辑。
### Q: 支持其他数据库吗?
A: 目前只支持 MySQL如需支持其他数据库需要修改 SQL 查询语句和驱动配置。