# 代码生成器 **Repository Path**: wm8466/code-generator ## Basic Information - **Project Name**: 代码生成器 - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-03 - **Last Updated**: 2026-04-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java 数据库代码生成器 一个基于 Java Swing 的数据库代码生成工具,能够从数据库表结构自动生成完整的 MyBatis 框架代码。 ## 项目简介 本项目是一个功能完善的数据库代码生成器,主要用于快速生成基于 MyBatis 框架的 Java 后端代码。通过图形化界面操作,用户可以轻松连接数据库、选择表结构,并生成完整的代码文件。 ### 主要特性 - 🚀 **快速生成** - 一键生成完整的 MyBatis 代码 - 🎨 **图形界面** - 基于 Swing 的友好用户界面 - 🔧 **配置灵活** - 支持自定义模板和项目配置 - 📊 **多表支持** - 支持批量生成多张表的代码 - 🔍 **实时预览** - 生成前可预览代码内容 - 📝 **模板管理** - 基于 YAML 的模板配置系统 ## 功能模块 ### 生成的代码类型 - **Entity 实体类** - 包含 JPA 注解的实体类 - **Mapper 接口** - MyBatis 数据访问接口 - **Mapper XML** - SQL 映射配置文件 - **Service 接口** - 业务逻辑接口 - **Service 实现** - 业务逻辑实现类 - **Controller** - Spring Web 控制器 ### 核心功能 1. **数据库连接管理** - 支持 MySQL 数据库连接 - 连接测试功能 - 自动识别表结构 2. **表选择功能** - 显示数据库中的所有表 - 支持批量选择表 - 表名到类名的自动转换 3. **模板配置** - 可配置的代码模板 - 支持选择性生成 - 自定义输出路径 4. **项目配置** - 包名配置 - 作者信息 - 版本管理 - 输出目录设置 ## 技术栈 - **Java 8** - 编程语言 - **Swing** - 图形用户界面 - **FreeMarker** - 模板引擎 - **MySQL Connector** - 数据库驱动 - **Jackson YAML** - 配置文件解析 - **Maven** - 项目管理 ### 依赖框架 - **MyBatis 3.5.13** - ORM 框架 - **JPA 2.2** - 实体类注解 - **Spring Web 5.3.27** - Web 框架支持 ## 快速开始 ### 环境要求 - Java 8 或更高版本 - Maven 3.6+ - MySQL 5.7+ 数据库 ### 安装步骤 1. **克隆项目** ```bash git clone <项目地址> cd code-generator ``` 2. **构建项目** ```bash mvn clean compile ``` 3. **运行应用** ```bash mvn exec:java -Dexec.mainClass="com.codegen.Main" ``` ### 使用说明 1. **配置数据库连接** - 在"数据库配置"标签页中输入数据库信息 - 点击"测试连接"验证连接是否成功 - 点击"连接"建立数据库连接 2. **选择表结构** - 切换到"表选择"标签页 - 选择需要生成代码的表 - 支持全选和反选操作 3. **配置模板** - 在"模板配置"标签页中选择需要生成的代码类型 - 支持自定义模板配置 4. **项目配置** - 设置项目基本信息(包名、作者、版本等) - 配置输出目录 5. **生成代码** - 预览生成的代码 - 点击"生成代码"按钮 - 代码将输出到指定目录 ## 项目结构 ``` code-generator/ ├── src/main/java/com/codegen/ │ ├── core/ # 核心生成逻辑 │ │ ├── CodeGenerator.java # 基础代码生成器 │ │ ├── AdvancedCodeGenerator.java # 增强版生成器 │ │ └── TemplateManager.java # 模板管理器 │ ├── model/ # 数据模型 │ │ ├── DatabaseConfig.java # 数据库配置 │ │ ├── TableInfo.java # 表信息 │ │ ├── ColumnInfo.java # 列信息 │ │ ├── ProjectConfig.java # 项目配置 │ │ └── TemplateConfig.java # 模板配置 │ ├── ui/ # 用户界面 │ │ ├── CodeGenUI.java # 基础UI界面 │ │ └── AdvancedCodeGenUI.java # 增强版UI界面 │ └── Main.java # 程序入口 ├── src/main/resources/ │ └── templates/ # FreeMarker模板文件 │ ├── entity.ftl # 实体类模板 │ ├── mapperInterface.ftl # Mapper接口模板 │ ├── mapperXml.ftl # XML映射模板 │ ├── serviceInterface.ftl # Service接口模板 │ ├── serviceImpl.ftl # Service实现模板 │ └── controller.ftl # Controller模板 ├── template-config.yaml # 模板配置文件 └── pom.xml # Maven配置文件 ``` ## 配置说明 ### 模板配置文件 (template-config.yaml) 项目使用 YAML 格式的配置文件来管理模板: ```yaml - name: "entity" description: "实体类" category: "java" templateFile: "entity.ftl" outputPath: "src/main/java/${basePackage}/entity/" fileNamePattern: "${className}.java" enabled: true - name: "mapper-interface" description: "Mapper接口" category: "java" templateFile: "mapperInterface.ftl" outputPath: "src/main/java/${basePackage}/mapper/" fileNamePattern: "${className}Mapper.java" enabled: true ``` ### 配置参数说明 - **name**: 模板标识符 - **description**: 模板描述 - **category**: 文件类型(java/xml) - **templateFile**: 模板文件名 - **outputPath**: 输出路径模板 - **fileNamePattern**: 文件名模板 - **enabled**: 是否启用 ## 自定义模板 ### 模板变量 在模板文件中可以使用以下变量: - `basePackage`: 基础包名 - `table.tableName`: 数据库表名 - `table.className`: 生成的类名 - `table.columns`: 列信息列表 - `column.columnName`: 列名 - `column.fieldName`: 字段名 - `column.javaType`: Java 类型 - `column.primaryKey`: 是否为主键 ### 创建新模板 1. 在 `src/main/resources/templates/` 目录下创建新的 `.ftl` 文件 2. 在 `template-config.yaml` 中添加模板配置 3. 重启应用程序 ## 开发指南 ### 扩展数据库支持 要添加对新数据库的支持,需要: 1. 在 `DatabaseConfig` 类中添加新的数据库类型 2. 更新连接字符串生成逻辑 3. 添加对应的数据库驱动依赖 ### 添加新的代码类型 1. 创建新的 FreeMarker 模板文件 2. 在 `template-config.yaml` 中注册模板 3. 在生成器中添加对应的生成逻辑 ## 常见问题 ### Q: 连接数据库失败 A: 请检查数据库地址、端口、用户名和密码是否正确,确保数据库服务正在运行。 ### Q: 生成的代码有语法错误 A: 请检查模板文件是否正确,特别是 FreeMarker 语法和变量引用。 ### Q: 无法找到模板文件 A: 请确保模板文件位于 `src/main/resources/templates/` 目录下。 ## 贡献指南 欢迎提交 Issue 和 Pull Request 来改进这个项目。 ### 开发环境设置 1. Fork 本项目 2. 克隆到本地 3. 创建新的功能分支 4. 提交更改 5. 推送到分支 6. 创建 Pull Request ## 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。 ## 更新日志 ### v1.0.0 - 初始版本发布 - 支持 MySQL 数据库 - 完整的 MyBatis 代码生成 - 图形化用户界面 - 模板配置系统 ## 联系方式 如有问题或建议,请通过以下方式联系: - 邮箱: [your-email@example.com] - GitHub: [项目地址] --- **注意**: 本项目仍在开发中,部分功能可能不稳定。建议在生产环境使用前进行充分测试。