# code-generator **Repository Path**: shirleyli_code/code-generator ## Basic Information - **Project Name**: code-generator - **Description**: Java代码生成器。通过配置数据库信息,自动生成生成Entity、Dao、Service、Controller相关代码的spring工程。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-09-01 - **Last Updated**: 2023-11-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, code-generator, SpringBoot, Spring, JPA ## README # codeGenerator #### 介绍 通过配置数据库信息,自动生成包含CRUD操作的spring工程。 ## 打包方法 JDK: 8+ 在根目录下运行打包命令: ``` ./gradlew clean shadowJar ``` 运行命令后,fatJar在目录build/libs目录下 ``` shirleylee@Shirley codeGenerator % ./gradlew clean shadowJar Starting a Gradle Daemon, 1 busy and 1 stopped Daemons could not be reused, use --status for details BUILD SUCCESSFUL in 11s 4 actionable tasks: 3 executed, 1 up-to-date shirleylee@Shirley codeGenerator % ls -lh build/libs total 17408 -rw-r--r--@ 1 shirleylee staff 7.8M Sep 2 21:22 codeGenerator-1.0-SNAPSHOT-all.jar ``` ## 使用方法 1. 编辑配置文件`generator.yaml`, 可以参考`src/main/resources/generator.yaml`, 配置说明如下: ```yaml author: Shirley #### 代码生成路径 path: .\code #### 工程名称 projectName: testCodeGen #### project group/ 包路径 packageName: com.pcitc.open #### 是否覆盖已存在文件 fileOverride: true #### 数据库配置。当前只支持mysql。 db: url: jdbc:mysql://192.168.246.129:13306/db_hr_0 username: rw_user password: rw123456 #### 数据库table列表 tables: - t_employee - t_salary - t_sub_company ``` 当前配置只支持mysql。如果是其他关系型数据库,请自行修改 * `build.gradle`文件中的数据库依赖包,用于codeGenerator链接数据库 * `src/main/resources/ftls/build.gradle.ftl`模板中的数据库依赖 * `src/main/resources/ftls/application.yaml.ftl`模板中的配置项:`spring.datasource.driver-class-name` 2. 将配置文件`generator.yaml`拷贝到`codeGenerator-1.0-SNAPSHOT-all.jar`同目录下 3. 运行命令生成代码: ```bash PS D:\Workspace\shirley\codeGenerator\build\libs> java -jar .\codeGenerator-1.0-SNAPSHOT-all.jar Hello Shirley! directory.getAbsolutePath() = D:\Workspace\shirley\codeGenerator\build\libs\generator.yaml CodeGenConfig(author=Shirley, path=.\code, projectName=testCodeGen, packageName=com.pcitc.open, fileOverride=true, db=CodeGenConfig.Db(url=jdbc:mysql://192.168.246.129:13306/db_hr_0, username=rw_user, password=rw123456), tables=[t_employee, t_salary, t_sub_company]) ... ... Generating .\code\testCodeGen\src\main\java\com\pcitc\open\entity\Employee.java Generate java code to Path: .\code done. ``` 代码生成完成,下面可以愉快的使用生成的代码了。如下是生成代码的目录结构: ``` PS D:\Workspace\shirley\codeGenerator\build\libs\code> tree .\testCodeGen\ /F Folder PATH listing Volume serial number is 3C06-2571 D:\WORKSPACE\SHIRLEY\CODEGENERATOR\BUILD\LIBS\CODE\TESTCODEGEN │ .gitignore │ build.gradle │ gradlew │ gradlew.bat │ settings.gradle │ ├─gradle │ └─wrapper │ gradle-wrapper.jar │ gradle-wrapper.properties │ └─src └─main ├─java │ └─com │ └─pcitc │ └─open │ │ ApplicationStarter.java │ │ │ ├─controller │ │ BaseController.java │ │ EmployeeController.java │ │ SalaryController.java │ │ SubCompanyController.java │ │ │ ├─dao │ │ BaseDao.java │ │ EmployeeDao.java │ │ SalaryDao.java │ │ SubCompanyDao.java │ │ │ ├─entity │ │ Employee.java │ │ Salary.java │ │ SubCompany.java │ │ │ └─service │ │ CrudService.java │ │ EmployeeService.java │ │ SalaryService.java │ │ SubCompanyService.java │ │ │ └─impl │ CrudServiceImpl.java │ EmployeeServiceImpl.java │ SalaryServiceImpl.java │ SubCompanyServiceImpl.java │ └─resources application.yaml ``` ## 高级功能 如果不想用代码里定义的模板,可以自定义模板生成代码。 1. 模板文件路径为:`src\main\resources\ftls`,可以将期望的模板添加到该路径 2. 修改`com.shirley.constants.TemplateFileEnum`代码,添加模板信息 3. 修改`com.shirley.Main`中`genCommonCode`或`genTableCode`函数,将添加的模板类型添加到GenJavaCodeTask的参数里。