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