又名Java代码生成器、JAVA在线代码生成平台、sql转java、大狼狗代码生成器、mybatis在线生成器、SQL转Java JPA、MYBATIS实现类代码生成平台
🚀 Powered by
Moshow郑锴(大狼狗)🌟 Might the holy code be with you !CSDN传送门️️➡️ https://zhengkai.blog.csdn.net
微信公众号➡️软件开发大百科
本项目是基于 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 实现!
🙌 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在原有基础上进行了现代化重构,优化了项目结构和代码组织,使其更符合现代 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 版本时遇到 FastJsonHttpMessageConverter 找不到类问题以及 FastJsonConfig 找不到问题,需要安装以下类库:
- fastjson2
- fastjson2-extension
- fastjson2-extension-spring6
当项目从 Spring Boot 2.x 升级到 3.x 时,可能会遇到 "java: 程序包 javax.servlet.http 不存在" 问题,这是因为 Spring Boot 3 使用了 Jakarta EE 9+,包名从 javax.* 变更为 jakarta.*。
本项目遵循相关开源协议,欢迎提交问题、分享常用模板,或将你的灵感通过 PR 实现!




