- 升级所有模块版本从1.0到1.1 - 统一Maven依赖版本管理 - 优化PlayClerkUserInfoServiceImpl导入语句格式 - 确保版本一致性和向后兼容性
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 |
注意事项
- 重要:首次使用前,请修改
src/main/resources/config.properties文件中的数据库连接信息 - 确保数据库连接正常,数据库服务器可访问
- 确保指定的表存在于数据库中
- 生成的代码会覆盖同名文件,请注意备份
- 支持的数据库类型:MySQL 5.7+
- 确保数据库用户有足够的权限读取表结构信息
常见问题
Q: 如何自定义模板?
A: 模板文件位于 src/main/resources/vm/ 目录下,可以根据需要修改 .vm 文件。
Q: 如何修改生成的文件结构?
A: 修改 CodeGenerator.getFileName() 方法中的文件路径逻辑。
Q: 支持其他数据库吗?
A: 目前只支持 MySQL,如需支持其他数据库,需要修改 SQL 查询语句和驱动配置。