SpringBootCodeGenerator
又名大狼狗代码生成器,基于SpringBoot2+Freemarker的JAVA代码生成器,以释放双手为目的,支持mysql/oracle/pgsql三大数据库, 用DDL-SQL语句生成JPA/JdbcTemplate/Mybatis/MybatisPlus/BeetlSQL等相关代码.
Install / Use
/learn @moshowgame/SpringBootCodeGeneratorREADME
SpringBootCodeGenerator 大狼狗代码生成器
又名Java代码生成器、JAVA在线代码生成平台、sql转java、大狼狗代码生成器、mybatis在线生成器、SQL转Java JPA、MYBATIS实现类代码生成平台<br>
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
✨ 基于SpringBoot3和Freemarker的高效代码生成平台
👐 Say goodbye to repetitive CRUD work — free your hands and boost productivity
💡 告别繁琐重复的 CRUD 操作,释放你的双手,让开发更高效!
🛠️ Supports MySQL, Oracle, and PostgreSQL — the most popular SQL dialects
📦 支持主流数据库:MySQL、Oracle、PgSQL,标准 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 实现!
<img src="./newui_version_2.png" width="600px">🙌 Special thanks to BeJSON 前站长
三叔的慧眼与支持,让项目得以脱颖而出,感恩!
功能特性
支持多种生成模式
- 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
添加新模板
- 在
resources/templates/code-generator目录中找到对应类型 - 复制并编写 Freemarker 模板文件(.ftl)
- 修改
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 应用的最佳实践。
重构亮点
- 清晰的分层架构:采用 Controller-Service-DTO-VO 分层设计,各层职责明确
- 接口与实现分离:服务层采用接口与实现分离的设计,便于测试和扩展
- 策略模式应用:使用策略模式处理不同类型的 SQL 解析,易于扩展新的解析方式
- 现代化开发规范:遵循 Spring Boot 和 Java 开发最佳实践
- 完善的异常处理:统一异常处理机制,提供更友好的错误提示
重构后项目结构
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);
重构优势
- 结构清晰:通过合理的包结构和分层设计,使项目结构更加清晰易懂
- 易于维护:各层职责明确,便于定位和修复问题
- 易于扩展:采用策略模式等设计模式,便于添加新的功能模块
- 现代化:遵循 Spring Boot 和 Java 的最新最佳实践
- 前后端兼容:保持与现有前端代码的数据交互格式,无缝升级
升级问题解决方案
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
配置模板<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 | 优化说明
