Files
peipei-backend/play-generator/README.md
2025-06-13 09:41:48 +08:00

4.1 KiB
Raw Blame History

Play Generator - 代码生成器

这是一个独立的代码生成器工具,可以通过 main 方法直接运行生成代码。

功能特性

  • 支持 MySQL 数据库表结构读取
  • 自动生成 Entity、Mapper、Service、Controller 等代码文件
  • 基于 Velocity 模板引擎
  • 支持批量生成多个表
  • 可自定义输出目录和包名

使用方法

提供两种方式来使用代码生成器:

方式一:使用配置文件(推荐)

1. 修改配置文件

编辑 src/main/resources/config.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 文件中的数据库配置:

// 数据库配置
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. 配置生成参数

// 生成配置
config.setAuthor("your_name");
config.setPackageName("com.your.package");
config.setOutputDir("./generated-code");
config.setAutoRemovePre(false);
config.setTablePrefix("sys_");

3. 指定要生成的表名

// 要生成的表名(可以配置多个)
String[] tableNames = {
    "your_table1",
    "your_table2",
    "your_table3"
};

4. 运行生成器

方式一:通过 Maven 运行

mvn clean compile exec:java

方式二:通过 IDE 运行

直接运行 MainGenerator.main() 方法

方式三:打包后运行

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 查询语句和驱动配置。