# xz-utils **Repository Path**: musekeji/xz-utils ## Basic Information - **Project Name**: xz-utils - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-07 - **Last Updated**: 2026-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

XzUtils — MyBatis SQL 日志解析与开发实用工具集。

An IntelliJ IDEA plugin for MyBatis SQL log parsing, real-time SQL interception and code formatting.

# XZ-Utils 一个功能强大的 IntelliJ IDEA 插件,提供 MyBatis SQL 日志解析、代码格式化、SQL 解析等实用工具。 ## 功能特性 ### 🖥️ MyBatis SQL 日志解析 - 自动解析 MyBatis 执行日志,提取 SQL 语句和参数 - 支持格式化、压缩两种展示模式 - 可将日志保存到文件 - 支持自定义缩进和端口配置 ### ⚡ MyBatis Log Plus (增强版) - 通过 Java Agent 实时拦截 MyBatis SQL 执行 - Socket 通信实现实时数据传输 - 支持服务端和客户端模式 - 心跳检测和自动重连机制 - 格式化展示完整的执行 SQL ### 📝 代码格式化工具 - 支持多种文件类型格式化 - 内置 JSQL Parser 和自定义格式化引擎 - 独立的格式化工具窗口 ### 🔧 SQL 解析器 - 从日志中自动解析 SQL 语句 - 支持参数替换和模板 SQL 拼接 - 自动识别 SQL 操作类型 ### 🛠️ 实用工具 - **编辑器包装器**: 支持查看器和编辑模式的代码编辑器 - **控制台工具**: 带日志级别的控制台输出 - **端口检测**: 检测端口占用情况 - **MyBatis 检测**: 检测项目是否使用 MyBatis ## 快速开始 ### 环境要求 - IntelliJ IDEA 2021.3 或更高版本 - JDK 11 或更高版本 - Gradle 7.6 或更高版本 ### 安装方式 #### 方法一:源码编译 ```bash # 克隆项目 git clone https://gitee.com/xiazhi926459/xz-utils.git # 编译插件 ./gradlew buildPlugin # 在 IntelliJ IDEA 中安装 # Preferences -> Plugins -> Install Plugin from Disk ``` #### 方法二:Java Agent 方式 ```bash # 启动应用时添加 JVM 参数 -javaagent:path/to/xz-mybatis-agent.jar=端口号 ``` ## 使用说明 ### MyBatis Log 窗口 1. **打开工具窗口**: View -> Tool Windows -> XzUtils 2. **选择功能标签页**: - **FormaterTab**: 代码格式化工具 - **SqlParserTab**: SQL 日志解析工具 - **MyBatisLogPlus**: 实时 SQL 监控 ### MyBatis Log Plus 配置 1. **打开设置**: Preferences -> Tools -> MyBatis Log Plus 2. **配置选项**: - SQL 展示样式 (格式化/压缩/原始) - 缩进数量 - 日志文件保存路径 - 端口范围配置 - 格式化引擎选择 ### Socket 通信 插件提供 Socket 端点实现: ```java // 创建服务端 SocketConfig config = new SocketConfig(port); SocketEndpoint server = SocketFactory.createServer(config); server.start(); // 创建客户端 SocketEndpoint client = SocketFactory.createClient(config); client.start(); ``` ### 代码格式化 ```java // 格式化 SQL String formatted = MySqlFormatter.formatted(sql, FormatterEnum.SQL_FORMATTER); // 压缩 SQL String compressed = MySqlFormatter.compressed(sql); ``` ## 项目结构 ``` xz-utils/ ├── src/main/java/com/xz/xzutils/ │ ├── XzUtilsWindowFactory.java # 工具窗口工厂 │ ├── actions/ # 动作类 │ ├── components/ # UI 组件 │ │ ├── console/ # 控制台工具 │ │ └── editor/ # 编辑器工具 │ ├── module/ │ │ ├── toolwindow/ # 工具窗口标签页 │ │ ├── xzmybatislog/ # MyBatis 日志解析 │ │ └── xzmybatislogplus/ # MyBatis 日志增强 │ ├── settings/ # 插件设置 │ └── utils/ # 工具类 ├── xz-mybatis-agent/ # Java Agent │ └── src/main/java/com/xz/xzmybatisagent/ │ ├── MySqlLogInterceptor.java # SQL 拦截器 │ └── socket/ # Socket 通信 └── src/main/resources/ └── META-INF/plugin.xml # 插件配置 ``` ## 主要模块 ### SqlParserTab SQL 日志解析标签页,提供: - 日志输入编辑器 - SQL 解析按钮 - 解析结果查看器 - 一键复制功能 ### SqlConsole 自定义控制台实现,提供: - 多级别日志输出 (DEBUG, INFO, WARN, ERROR) - 不同内容的样式区分 - 超链接支持 ### MyBatis Log Manager MyBatis 日志管理器,负责: - 日志行解析 - SQL 状态跟踪 - 控制台输出 ### MyBatis Agent Java Agent 组件,提供: - 运行时 SQL 拦截 - 参数值替换 - 执行时间统计 - Socket 数据发送 ## 技术栈 - **开发框架**: IntelliJ Platform SDK - **构建工具**: Gradle + Kotlin DSL - **SQL 解析**: JSQL Parser - **通信协议**: TCP Socket - **日志框架**: SLF4J ## 许可证 本项目采用 MIT 许可证。 ## 贡献指南 1. Fork 本仓库 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request ## 更新日志 查看 [CHANGELOG.md](./CHANGELOG.md) 了解版本更新历史。 ## 联系方式 - 项目地址: https://gitee.com/xiazhi926459/xz-utils - 问题反馈: https://gitee.com/xiazhi926459/xz-utils/issues