diff --git a/@run.cmd b/@run.cmd
index e49fe73..75a69a8 100644
--- a/@run.cmd
+++ b/@run.cmd
@@ -1,4 +1,3 @@
-java -jar "./generator-web/target/generator-web-3.0.jar"
-pause
-mvn clean compile package
+mvn clean compile
+mvn spring-boot:run
pause
\ No newline at end of file
diff --git a/README.md b/README.md
index 5c136b8..72cab8e 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# SpringBootCodeGenerator
+# SpringBootCodeGenerator 大狼狗代码生成器
----
又名`Java代码生成器`、`JAVA在线代码生成平台`、`sql转java`、`大狼狗代码生成器`、`mybatis在线生成器`、`SQL转Java JPA、MYBATIS实现类代码生成平台`

@@ -7,9 +7,13 @@
[](https://github.com/moshowgame/SpringBootCodeGenerator/actions/workflows/maven.yml)
# Author
->powered by `Moshow郑锴(大狼狗)` , [https://zhengkai.blog.csdn.net](https://zhengkai.blog.csdn.net)
+>🚀
+Powered by `Moshow郑锴(大狼狗)` 🌟 Might the holy code be with you !
+>
**`CSDN`传送门**️️➡️ [https://zhengkai.blog.csdn.net](https://zhengkai.blog.csdn.net)
+>
**微信公众号**➡️`软件开发大百科`
# 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` 的高效代码生成平台
@@ -34,47 +38,205 @@
> 🙌 Special thanks to BeJSON 前站长 `三叔` 的慧眼与支持,让项目得以脱颖而出,感恩!
-# URL
-- 感谢`卡卡`部署在[BEJSON](https://java.bejson.com/generator)上,目前是BeJSON专供的`金牌工具`
-- 感谢`jully.top`部署的副本 [https://jully.top/generator/](https://jully.top/generator/)。
-- 感谢`staticfile`CDN提供稳定、快速、免费的静态文件CDN加速服务(在线版本)
+## 功能特性
-| 访问地址 | http://localhost:1234/generator |
-|:-----------------------|:--------------------------------------------------------------|
-| BEJSON 金牌工具 在线地址 | https://java.bejson.com/generator/ |
-| JSON.CN 金牌工具 在线地址 | https://java.json.cn/generator/ |
-| Jully 在线地址 | https://jully.top/generator/ |
-| NeverWaive 在线地址 | https://codegenerator.neverwaive.cn/ |
-| CSDN BLOG | https://zhengkai.blog.csdn.net |
-| GITEE仓库 | https://gitee.com/moshowgame/SpringBootCodeGenerator/releases |
-| GITHUB仓库 | https://github.com/moshowgame/SpringBootCodeGenerator |
+### 支持多种生成模式
+- DDL SQL 模式:通过建表语句生成代码
+- INSERT SQL 模式:通过插入语句生成代码
+- SELECT SQL 模式:通过查询语句生成代码
+- JSON 模式:通过 JSON 数据生成代码
-# Tips or Features
-- 支持`DDL SQL`/`INSERT SQL`/`SIMPLE JSON`/`SELECT SQL`(*New)四种生成模式
-- `自动记忆`最近生成的内容,最多保留9个
-- 提供众多`通用模板`,易于使用,复制粘贴加简单修改即可完成CRUD操作
-- 支持`特殊字符`模板(`#`请用`井`代替;`$`请用`¥`代替)
-- `Util集合`提供一些基本对象的使用方法供方便COPY,如对应的CRUD SQL语句、setMap、getMap、get属性等等
-- 关于`类名注释`,可根据`comment=(mysql)`或者`comment on table(pgsql/oracle)`生成
-- 可设置是否`自动引包`(java中的import)及`引入包路径`(java类中的package),建议取消并配合IDEA的自动引包更智能(Settings→Editor→General→Auto Import,勾选Add unambiguous imports on the fly以及Optimize imports on the fly)。
-- 可设置`表名前缀`,例如sys_user前缀为sys_之后可以正确生成user类
-- 可在`applicaltion.yml`中的`OEM.mode`设置`js/css引入模式`为`local`(本地模式,默认)/`CDN`(云CDN模式,在线网站推荐,省流量)
-- OEM信息可以在`applicaltion.yml`中的`OEM`中更改
-- *支持公共js/css的Local/CDN模式切换,方便`本地`或者`工具站`进行部署,可以在`application.yml`的`OEM.Mode=`进行设置,之后请在`header-CDN-v2.html`/`header-local-v2.html`中检查对应js/css配置是否正确。默认为`CDN`模式。对于没有网络的环境请使用`local`模式。
-- 如何判断是否包含Date日期类并引入,搜索`<#assign importDdate = true />`即可找到对应的方法判断和引入
+### 支持多种模板
+- JPA 模板
+- MyBatis 模板
+- MyBatis-Plus 模板
+- BeetlSQL 模板
+- CommonMapper 模板
+- TkMyBatis 模板
+- JDBC Template 模板
+- 前端 UI 模板(Element UI、Bootstrap UI 等)
-# Branch Detail 分支介绍
-- Master:主力分支,基于SpringBoot3+,需要JDK17+
-- JDK11:兼容分支,版本落后,基于SpringBoot2+,但支持JDK8/JDK11等旧JDK版本[https://github.com/moshowgame/SpringBootCodeGenerator/tree/jdk11]
+### 其他特性
+- 自动记忆最近生成的内容
+- 支持特殊字符模板(# 用 井 代替,$ 用 ¥ 代替)
+- 可设置表名前缀
+- 可选择是否自动引包
+- 支持本地/CDN 静态资源引入模式切换
-# 更新预告
-1.计划加入AI来帮忙生成更多样式的模板
-2.改进JSqlParser Engine (Select SQL and Create SQL)
+## 技术栈
+
+- Spring Boot 3
+- Freemarker 模板引擎
+- FastJSON2
+- JSqlParser SQL 解析器
+- Lombok 简化代码工具
+
+## 使用说明
+
+### 启动项目
+
+```bash
+# 克隆项目
+git clone https://github.com/moshowgame/SpringBootCodeGenerator.git
+
+# 进入项目目录
+cd SpringBootCodeGenerator
+# 编译项目
+mvn clean compile
+# 运行项目
+mvn spring-boot:run
+```
+
+项目启动后访问 http://localhost:1234/generator
+
+### 添加新模板
+
+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 统一响应对象,保持与前端的兼容性:
+
+```java
+// 成功响应
+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
+[](https://starchart.cc/moshowgame/SpringBootCodeGenerator)
+
+2025 NewUI V2版本
+
+配置模板
+
+网站流量分析-2024
+
+代码与你,越变越强
+
# Update Logs
| 更新日期 | 更新内容 |
|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| 2025.12.07 | 后端重构优化 |
| 2025.09.14 | 优化JSqlParser Engine(DDL Create SQL和Select SQL),适配更高级复杂的SQL |
| 2025.09.13 | JSqlParser Engine全新升级,目前Select SQL模式相对稳定!
更新SpringBoot等类库版本,修复漏洞
修复CDN问题,切换为staticfile.org |
| 2025.09.06 | 处理建表字段包含 using 字符时无法生成对应字段的情况(感谢@wubiaoo的反馈和@willxiang的PR) |
@@ -147,61 +309,3 @@
| 2018.09.15 | 新增Swagger-UI模板.修复一些命名和导入问题.JPA的Entity默认第一个字段为Id,如果不是请手工修改. |
| 2018.09.13 | 修复字段没有描述以及类型为DATE型导致的问题.新增JPA的Controller模板. |
| 2018.08.31 | 初始化项目.新增JPA系列Entity+Repository模板. |
-
-# ClassInfo/TableInfo
-|名称|说明|
-|:----|:----|
-|packageName|自定义的包名|
-|authorName|自定义的作者名|
-|tableName|sql中的表名|
-|className|java类名|
-|classComment|sql表备注/java类备注|
-|fieldName|字段名|
-|fieldComment|字段备注|
-
-# Options
-|名称|说明|默认值|
-|:----|:----|:----|
-|作者 |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|
-
-
-# How to add a new template
-1. `resources/templates/code-generator`中找到对应类型
-2. COPY并编写freemarker模板文件`.ftl`
-3. 修改`template.json`文件,新增模板信息,页面可动态加载
-
-# Upgrade Issue Resolution 升级问题解决方案
-- 如果你最近也在升级FastJson到FastJson2版本,而跟我一样也遇到了FastJsonHttpMessageConverter找不到类问题以及FastJsonConfig找不到问题,那么恭喜你,看完本文,安装完fastjson2、fastjson2-extension、fastjson2-extension-spring6这三个类库,你就可以成功使用新版FastJson2了。
- [FastJson2中FastJsonHttpMessageConverter找不到类问题](https://blog.csdn.net/moshowgame/article/details/138013669)
-
-- 当项目从2.7.x的springboot升级到3.0.x的时候,遇到一个问题“java: 程序包javax.servlet.http不存在” 问题:
- [java: 程序包javax.servlet.http不存在](https://zhengkai.blog.csdn.net/article/details/131362304)
-
-- [CSDN【SpringBoot2启示录】专栏](https://blog.csdn.net/moshowgame/category_9274885.html)
-
-## Stargazers over time
-[](https://starchart.cc/moshowgame/SpringBootCodeGenerator)
-
-2025 NewUI V2版本
-
-配置模板
-
-网站流量分析-2024
-
-代码与你,越变越美
-
-
diff --git a/REFINED_REFACTORING_DOCUMENT.md b/REFACTORING_DOCUMENT.md
similarity index 100%
rename from REFINED_REFACTORING_DOCUMENT.md
rename to REFACTORING_DOCUMENT.md