SkillAgentSearch skills...

SpringBootCodeGenerator

又名大狼狗代码生成器,基于SpringBoot2+Freemarker的JAVA代码生成器,以释放双手为目的,支持mysql/oracle/pgsql三大数据库, 用DDL-SQL语句生成JPA/JdbcTemplate/Mybatis/MybatisPlus/BeetlSQL等相关代码.

Install / Use

/learn @moshowgame/SpringBootCodeGenerator
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

SpringBootCodeGenerator 大狼狗代码生成器


又名Java代码生成器JAVA在线代码生成平台sql转java大狼狗代码生成器mybatis在线生成器SQL转Java JPA、MYBATIS实现类代码生成平台<br> image image image Java CI with Maven

Author

🚀 Powered by Moshow郑锴(大狼狗) 🌟 Might the holy code be with you ! <br>CSDN传送门️️➡️ https://zhengkai.blog.csdn.net <br>微信公众号➡️软件开发大百科

Description

本项目是基于 Spring Boot 3 和 Freemarker 的高效代码生成平台,旨在帮助开发者告别繁琐重复的 CRUD 操作,释放双手,让开发更高效。项目支持主流数据库(MySQL、Oracle、PgSQL)和多种模板(JPA、Mybatis、MybatisPlus 等)。

🚀 Spring Boot Code Generator — a powerful code generation platform built on SpringBoot3 & Freemarker
✨ 基于 SpringBoot3Freemarker 的高效代码生成平台

👐 Say goodbye to repetitive CRUD work — free your hands and boost productivity
💡 告别繁琐重复的 CRUD 操作,释放你的双手,让开发更高效!

🛠️ Supports MySQL, Oracle, and PostgreSQL — the most popular SQL dialects
📦 支持主流数据库:MySQLOraclePgSQL,标准 SQL 一网打尽

⚙️ Generate templates from DDL, INSERT SQL, SELECT SQL, or simple JSON — covering JPA, JdbcTemplate, Mybatis, MybatisPlus, BeetlSQL, CommonMapper
🧩 通过建表 DDL、插入 SQL、选择 SQL 或简单 JSON,一键生成 JPA/JdbcTemplate/Mybatis/MybatisPlus/BeetlSQL/CommonMapper 等模板代码

🙏 Thanks for your continued support! BeJSON once peaked at 1.5K daily PV 👀, and now maintains a steady flow of around 600 visits — plus 2K+ GitHub Stars ✨. Your feedback remains our greatest motivation to keep improving! ❤️ 感谢大家一直以来的支持!BeJSON 曾创下日均访问量 1.5K 👀 的高峰,目前稳定在约 600 左右,GitHub Star 数也已突破 2K ✨。你们的反馈始终是我们不断前进的最大动力!

🌈 Wishing everyone balance, health, and success — may your code be bug-free and your coffee strong ☕
💬 祝大家工作顺利,生活平衡,身体健康,步步高升,代码无 bug,咖啡够劲!

📬 Feel free to submit issues, share useful templates, or contribute your brilliant ideas via PR
🤝 欢迎提交问题、分享常用模板,或将你的灵感通过 PR 实现!

🙌 Special thanks to BeJSON 前站长 三叔 的慧眼与支持,让项目得以脱颖而出,感恩!

<img src="./newui_version_2.png" width="600px">

功能特性

支持多种生成模式

  • DDL SQL 模式:通过建表语句生成代码
  • INSERT SQL 模式:通过插入语句生成代码
  • SELECT SQL 模式:通过查询语句生成代码
  • JSON 模式:通过 JSON 数据生成代码

支持多种模板

  • JPA 模板
  • MyBatis 模板
  • MyBatis-Plus 模板
  • BeetlSQL 模板
  • CommonMapper 模板
  • TkMyBatis 模板
  • JDBC Template 模板
  • 前端 UI 模板(Element UI、Bootstrap UI 等)

其他特性

  • 自动记忆最近生成的内容
  • 支持特殊字符模板(# 用 井 代替,$ 用 ¥ 代替)
  • 可设置表名前缀
  • 可选择是否自动引包
  • 支持本地/CDN 静态资源引入模式切换

技术栈

  • Spring Boot 3
  • Freemarker 模板引擎
  • FastJSON2
  • JSqlParser SQL 解析器
  • Lombok 简化代码工具

使用说明

启动项目

# 克隆项目
git clone https://github.com/moshowgame/SpringBootCodeGenerator.git

# 进入项目目录
cd SpringBootCodeGenerator
# 编译项目
mvn clean compile
# 运行项目
mvn spring-boot:run

# 访问项目
http://localhost:1234/generator

# 打包项目(不验证单元测试)
mvn clean package -DskipTests

# 运行测试
mvn test
# 查看JaCoCo测试覆盖率
cd /target/site/jacoco

添加新模板

  1. resources/templates/code-generator 目录中找到对应类型
  2. 复制并编写 Freemarker 模板文件(.ftl)
  3. 修改 template.json 文件,新增模板信息

配置说明

| 配置项 | 说明 | 默认值 | |:----|:----|:----| | 作者 | authorName | zhengkai.blog.csdn.net | | 包名 | packageName | cn.devtools | | 返回(成功) | returnUtilSuccess | Return.SUCCESS | | 返回(失败) | returnUtilFailure | Return.ERROR | | 忽略前缀 | ignorePrefix | sys_ | | 输入类型 | dataType | DDL SQL | | TinyInt转换 | tinyintTransType | int | | 时间类型 | timeTransType | Date | | 命名类型 | nameCaseType | CamelCase/驼峰 | | 是否包装类型 | isPackageType | true | | 是否swaggerUI | isSwagger | false | | 是否字段注释 | isComment | true | | 是否自动引包 | isAutoImport | | | 是否带包路径 | isWithPackage | | | 是否Lombok | isLombok | true |

| 模板变量 | 说明 | |:-------------|:---------------| | tableName | sql中的表名 | | className | java类名 | | classComment | sql表备注/java类备注 | | fieldName | 字段名 | | fieldComment | 字段备注 |

重构2025说明

本项目的重构2025在原有基础上进行了现代化重构,优化了项目结构和代码组织,使其更符合现代 Spring Boot 应用的最佳实践。

重构亮点

  1. 清晰的分层架构:采用 Controller-Service-DTO-VO 分层设计,各层职责明确
  2. 接口与实现分离:服务层采用接口与实现分离的设计,便于测试和扩展
  3. 策略模式应用:使用策略模式处理不同类型的 SQL 解析,易于扩展新的解析方式
  4. 现代化开发规范:遵循 Spring Boot 和 Java 开发最佳实践
  5. 完善的异常处理:统一异常处理机制,提供更友好的错误提示

重构后项目结构

com.softdev.system.generator
├── GeneratorApplication.java              # 启动类
├── config                                # 配置类包
│   ├── WebMvcConfig.java                 # MVC配置
│   └── GlobalExceptionHandler.java       # 全局异常处理器
├── controller                            # 控制层
│   ├── PageController.java               # 页面跳转控制器
│   ├── CodeGenController.java            # 代码生成相关接口
│   └── TemplateController.java           # 模板相关接口
├── service                               # 服务层接口
│   ├── CodeGenService.java               # 代码生成服务接口
│   ├── TemplateService.java              # 模板服务接口
│   └── parser                            
│       ├── SqlParserService.java         # SQL解析服务接口
│       └── JsonParserService.java        # JSON解析服务接口
├── service.impl                          # 服务实现层
│   ├── CodeGenServiceImpl.java           # 代码生成服务实现
│   ├── TemplateServiceImpl.java          # 模板服务实现
│   └── parser
│       ├── SqlParserServiceImpl.java     # SQL解析服务实现
│       └── JsonParserServiceImpl.java    # JSON解析服务实现
├── entity                                # 实体类
│   ├── dto                              
│   │   ├── ParamInfo.java                # 参数信息DTO
│   │   ├── ClassInfo.java                # 类信息DTO
│   │   └── FieldInfo.java                # 字段信息DTO
│   ├── vo                               
│   │   └── ResultVo.java                 # 统一返回结果VO
│   └── enums                            
│       └── ParserTypeEnum.java           # 解析类型枚举
├── util                                  # 工具类包
│   ├── FreemarkerUtil.java               # Freemarker工具类
│   ├── StringUtilsPlus.java              # 字符串工具类
│   ├── MapUtil.java                      # Map工具类
│   ├── mysqlJavaTypeUtil.java            # MySQL类型转换工具类
│   └── exception                        
│       ├── CodeGenException.java         # 自定义业务异常
│       └── SqlParseException.java        # SQL解析异常
└── constant                              # 常量定义
    └── CodeGenConstants.java             # 代码生成常量(待实现)

统一响应格式

所有控制器方法均返回 ResultVo 统一响应对象,保持与前端的兼容性:

// 成功响应
ResultVo.ok(data);

// 错误响应
ResultVo.error(message);

重构优势

  1. 结构清晰:通过合理的包结构和分层设计,使项目结构更加清晰易懂
  2. 易于维护:各层职责明确,便于定位和修复问题
  3. 易于扩展:采用策略模式等设计模式,便于添加新的功能模块
  4. 现代化:遵循 Spring Boot 和 Java 的最新最佳实践
  5. 前后端兼容:保持与现有前端代码的数据交互格式,无缝升级

升级问题解决方案

FastJSON 升级到 FastJSON2

如果在升级 FastJSON 到 FastJSON2 版本时遇到 FastJsonHttpMessageConverter 找不到类问题以及 FastJsonConfig 找不到问题,需要安装以下类库:

  • fastjson2
  • fastjson2-extension
  • fastjson2-extension-spring6

Spring Boot 3 升级

当项目从 Spring Boot 2.x 升级到 3.x 时,可能会遇到 "java: 程序包 javax.servlet.http 不存在" 问题,这是因为 Spring Boot 3 使用了 Jakarta EE 9+,包名从 javax.* 变更为 jakarta.*。

版权信息

本项目遵循相关开源协议,欢迎提交问题、分享常用模板,或将你的灵感通过 PR 实现!

Stargazers over time

Stargazers over time

配置模板<br> <img src="./codegenerator2.png"> 网站流量分析-2024<br> <img src="./site_analysis-2024.png"> 代码与你,越变越强<br> <img src="./donate.png">

Update Logs

| 更新日期 | 更新内容 | |:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 2025.12.09 | 优化Mybatis和Mybatis-Plus模板 | | 2025.12.08 | 引入单元测试和JaCoCo测试覆盖率,优化代码覆盖率 UNIT_TEST_DOCUMENT.md | | 2025.12.07 | 后端重构优化!REFACTORING_DOCUMENT.md ;目录结构调整! | | 2025.09.14 | 优化JSqlParser Engine(DDL Create SQL和Select SQL),适配更高级复杂的SQL | | 2025.09.13 | JSqlParser Engine全新升级,目前Select SQL模式相对稳定! <br>更新SpringBoot等类库版本,修复漏洞<br>修复CDN问题,切换为staticfile.org | | 2025.09.06 | 处理建表字段包含 using 字符时无法生成对应字段的情况(感谢@wubiaoo的反馈和@willxiang的PR) | | 2025.03.31 | 优化说明

View on GitHub
GitHub Stars2.2k
CategoryData
Updated5h ago
Forks723

Languages

Java

Security Score

100/100

Audited on Mar 27, 2026

No findings