免费在线 MyBatis / MyBatis-Plus 控制台日志 SQL 参数还原工具。自动提取 Preparing 和 Parameters 行,智能识别数据类型并将占位符问号替换为实际值,生成可直接在数据库客户端运行的完整可执行 SQL 语句。100% 浏览器纯前端运行,安全无泄漏风险。
在基于 Spring Boot + MyBatis / MyBatis-Plus 的日常 Java Web 后端研发与生产故障排查中,开发者最常做的一件事就是去应用日志或 IDEA 控制台中查看具体执行了什么 SQL。
然而出于安全性与 JDBC 标准设计,MyBatis 底层采用的是 PreparedStatement 预编译机制,控制台输出的日志永远是“骨肉分离”的两行(甚至在多线程高并发下交织在一起):
==> Preparing: SELECT id, username, email FROM sys_user WHERE (username = ? AND status = ?)==> Parameters: admin(String), 1(Integer)
如果是一两条带两三个参数的简单查询,人工还可以手动替换;但遇到带有十几个字段的 INSERT 批量插入,或是复杂的 IN (?, ?, ?...) 动态条件,手动拼装不仅极度枯燥费时,还容易搞错引号或类型,导致在 Navicat、DBeaver 或 DataGrip 中反复报错。
本工具专为解决这一高频痛点设计:只需将整段控制台日志粘贴进来,系统自动识别匹配、按参数类型补全单引号、转义特殊符号,并一键格式化生成开箱即用的完整 SQL。
| MyBatis 日志参数标记 | Java 数据类型 | SQL 还原结果 | 处理逻辑说明 |
|---|---|---|---|
| admin(String) | java.lang.String | 'admin' | 自动添加单引号,内部单引号自动转义为 '' |
| 10086(Long) / 25(Integer) | Long / Integer / Short | 10086 / 25 | 整数类型保留原生数值,不加任何引号 |
| 299.50(BigDecimal) | BigDecimal / Double | 299.50 | 高精度浮点数值保留字面量 |
| true(Boolean) / false(Boolean) | Boolean | true / false (或 1 / 0) | 提供通用布尔值或 MySQL TINYINT(1) 兼容模式切换 |
| 2026-11-01 14:00:00(Timestamp) | Timestamp / Date / LocalDateTime | '2026-11-01 14:00:00' | 日期时间自动补充单引号以符合标准 SQL 语法规范 |
| null / null(String) | 任意包装类型的 null | NULL | 安全转换为 SQL 关键字 NULL(无引号) |
2026-11-01 14:20:18.421 [http-nio-8080-exec-1] DEBUG ... 以及其他干扰字符,工具能够精准提取目标 SQL,无需人工预先清理。[SQL #1] 序号注释,方便逐条排查执行结果。