# 自定义代码生成器 **Repository Path**: a100245/custom-code-generator ## Basic Information - **Project Name**: 自定义代码生成器 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-08 - **Last Updated**: 2025-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JE-PDU 代码生成器 ## 简介 这是一个独立的代码生成器项目,用于根据数据库表结构生成实体类和Mapper接口。该项目不依赖任何其他模块,可以独立运行。 ## 项目结构 ``` je-pdu-code-generator/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── generator/ │ │ │ ├── CodeGeneratorApplication.java # 主程序入口 │ │ │ ├── config/ │ │ │ │ └── GeneratorConfig.java # 配置类 │ │ │ └── service/ │ │ │ └── CodeGeneratorService.java # 代码生成服务 │ │ └── resources/ │ │ └── templates/ │ │ └── entity.java.ftl # 实体类模板文件 ├── pom.xml # Maven配置文件 └── README.md # 说明文档 ``` ## 配置说明 所有配置都写死在代码中,位于 [CodeGeneratorApplication.java](file:///d:/cod/je-pdu-code-generator/src/main/java/generator/CodeGeneratorApplication.java) 文件的 `createFixedConfig()` 方法中: ### 数据库配置 ```java // 数据库配置 - 写死在代码中 database.setUrl("jdbc:mysql://120.48.14.237:3306/xjs_pdu?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false"); database.setUsername("root"); database.setPassword("41876443855"); database.setDriverClassName("com.mysql.cj.jdbc.Driver"); ``` ### 代码生成配置 ```java // 代码生成配置 - 写死在代码中 code.setAuthor("xulei"); // 设置为统一的输出目录 code.setEntityOutputDir("E:\\codeSH"); code.setMapperOutputDir("E:\\codeSH"); code.setXmlOutputDir("E:\\codeSH"); code.setServiceOutputDir("E:\\codeSH"); code.setServiceImplOutputDir("E:\\codeSH"); code.setControllerOutputDir("E:\\codeSH"); // 实体类配置 code.setEntitySuffix("Entity"); // 实体类后缀 code.setEntitySuperClass("BaseExtendEntity.BaseExtendOrgEntity"); // 实体类继承的父类 code.setIgnoreFields("creator_time,creator_user_id,creator_user,last_modify_time,last_modify_user_id,last_modify_user,delete_mark,delete_time,delete_user_id,version,sort_code,enabled_mark,organize_id,organize,tenant_id,remark"); // 忽略的字段列表 code.setUseCustomEntityAnnotations(true); // 是否使用自定义注解(@Schema替代@ApiModelProperty) code.setGenerateExtraClasses(true); // 生成额外的类(VO、DTO、Pagination) ``` ### 包配置 ```java // 包配置 - 设置为空字符串,不使用包结构 pkg.setEntity(""); // 空字符串表示不使用包结构 pkg.setMapper(""); pkg.setXml(""); pkg.setService(""); pkg.setServiceImpl(""); pkg.setController(""); ``` ## 配置项详细说明 | 配置项 | 说明 | 默认值 | |-------|------|--------| | `entitySuffix` | 实体类后缀,如设置为"Entity",则生成的类名为"UserEntity" | "" | | `entitySuperClass` | 实体类继承的父类,如设置为"BaseEntity",则生成的类会继承该父类 | "" | | `ignoreFields` | 忽略生成的字段列表,多个字段用逗号分隔 | "" | | `useCustomEntityAnnotations` | 是否使用自定义注解,设置为true时使用@Schema注解,false时使用@ApiModelProperty注解 | false | | `generateExtraClasses` | 是否生成额外的类(VO、DTO、Pagination) | true | ## 使用方法 ### 1. 编译项目 ```bash cd D:\cod\je-pdu-code-generator mvn clean compile ``` ### 2. 运行代码生成器 ```bash mvn exec:java -Dexec.mainClass="generator.CodeGeneratorApplication" ``` ### 3. 输入表名 运行后根据提示输入要生成代码的表名,多个表名用英文逗号分隔。 ## 生成的代码结构 ### 实体类 (Entity) - 生成路径: `je-pdu-api/src/main/java/je/pdu/entity/` - 包含Lombok注解 (@Data) - 包含Swagger注解 (@Schema 或 @ApiModelProperty,取决于配置) - 包含MyBatis Plus注解 (@TableName, @TableId等) ### Mapper接口 - 生成路径: `je-pdu-bff/src/main/java/je/pdu/dao/mapper/` - 继承自 `BaseMapper` - 包含MyBatis注解 (@Mapper) ### XML映射文件 - 生成路径: `je-pdu-bff/src/main/resources/mapper/` - 包含基本的CRUD SQL语句 ## 注意事项 1. 确保数据库连接信息正确 2. 确保目标表存在于数据库中 3. 生成的代码会覆盖同名文件,请注意备份 4. 可以根据需要修改代码中的路径和包名