# mybatis-parser **Repository Path**: love_yu_0698/mybatis-parser ## Basic Information - **Project Name**: mybatis-parser - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-24 - **Last Updated**: 2026-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MyBatis SQL 解析器 一个基于 Spring Boot + Vue.js 的 MyBatis 动态 SQL 解析工具,支持实时解析 MyBatis 动态 SQL 语句并替换参数。 ## 功能特性 - ✨ 实时解析 MyBatis 动态 SQL(支持 if、where、set 等标签) - 🎯 参数自动替换和格式化 - 🎨 现代化深色主题 UI - 📋 一键复制解析结果 - 🔄 SQL 格式化功能 - 💡 参数可视化预览 ## 技术栈 ### 后端 - Spring Boot 2.7.18 - MyBatis 3.5.16 - Lombok - FastJSON2 ### 前端 - Vue 2.6 - Element UI - Axios - Google Fonts (Outfit + JetBrains Mono) ## 快速开始 ### 后端启动 ```bash # 进入项目根目录 cd d:/develop/workspace/ai # 使用 Maven 启动 mvn spring-boot:run # 或者先打包再运行 mvn clean package java -jar target/mybatis-parser-1.0.0.jar ``` 后端服务将在 `http://localhost:18000` 启动 ### 前端启动 ```bash # 进入前端目录 cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build ``` 前端服务将在 `http://localhost:3000` 启动 ## 使用示例 ### 输入 MyBatis SQL ```xml SELECT * FROM user AND id = #{id} AND name LIKE #{name} ``` ### 输入参数(JSON) ```json { "id": 1, "name": "%张%" } ``` ### 解析结果 ```sql SELECT * FROM user WHERE id = 1 AND name LIKE '%张%' ``` ## 项目结构 ``` ai/ ├── src/main/java/com/mybatis/parser/ │ ├── config/ # 配置类 │ │ ├── CorsConfig.java │ │ └── WebConfig.java │ ├── controller/ # 控制器 │ │ └── ParserController.java │ ├── exception/ # 异常处理 │ │ ├── BusinessException.java │ │ └── GlobalExceptionHandler.java │ ├── model/ # 数据模型 │ │ ├── ParseRequest.java │ │ └── ParseResponse.java │ ├── service/ # 业务服务 │ │ └── MybatisParserService.java │ └── MybatisParserApplication.java ├── frontend/ │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── utils/ # 工具函数 │ │ ├── App.vue # 主组件 │ │ └── main.js # 入口文件 │ ├── public/ │ └── package.json └── pom.xml ``` ## API 接口 ### 解析 SQL **POST** `/api/parser/parse` 请求体: ```json { "mybatisSql": "SELECT * FROM user WHERE id = #{id}", "params": { "id": 1 } } ``` 响应: ```json { "success": true, "sql": "SELECT * FROM user WHERE id = 1", "timestamp": 1234567890 } ``` ### 健康检查 **GET** `/api/parser/health` ## 优化内容 ### 后端优化 - ✅ 升级 Spring Boot 到 2.7.18(安全版本) - ✅ 升级 MyBatis 到 3.5.16 - ✅ 替换 fastjson 为 fastjson2(更安全) - ✅ 添加全局异常处理器 - ✅ 添加参数校验 - ✅ 添加日志记录 - ✅ 优化 SQL 解析逻辑 - ✅ 改进参数替换机制 - ✅ 添加 CORS 配置 - ✅ 使用构造器注入替代字段注入 ### 前端优化 - ✅ 重新设计 UI(深色科技主题) - ✅ 封装 axios 请求 - ✅ 添加请求/响应拦截器 - ✅ 提取工具函数 - ✅ 优化错误处理 - ✅ 改进代码结构 - ✅ 添加环境变量配置 - ✅ 升级 axios 到安全版本 - ✅ 添加代理配置 ## 许可证 MIT License