MyBatis日志还原SQL
粘贴 Preparing 与 Parameters 两行,按类型回填占位符生成可直接执行的 SQL
把 MyBatis 打印的预编译 SQL 日志还原成可执行语句:自动识别整段日志中的多组 Preparing / Parameters,按 String、数值、日期、Boolean 等类型把问号占位符替换为真实参数值,参数与占位符数量不匹配时给出红色警告。全部解析在浏览器本地完成,日志不会上传。
日志输入
自动扫描 Preparing: 与 Parameters: 两行并逐组配对还原,无需删除日志里的其他内容。
还原结果
粘贴 MyBatis 日志后,这里会显示还原出的可执行 SQL
#关于 MyBatis 日志还原 SQL
开发时经常需要把 MyBatis 打印的预编译 SQL 与参数拼回完整语句,放到数据库客户端里直接执行来排查问题。手动替换问号既繁琐又容易错位,本工具按日志中的类型标注自动完成回填,支持一条日志里的多组 Preparing / Parameters,并在数量对不上时明确提示。
工作原理
工具先从日志中扫描 Preparing: 行取出预编译 SQL、扫描其后的 Parameters: 行取出参数列表;再按「值(类型)」的格式逐个拆分参数(兼容参数值自身含逗号、括号的情况),依据类型把每个问号占位符按顺序替换为对应写法的值,最后输出一条可直接执行的完整 SQL。
支持的参数类型
- String / Char / varchar:加单引号,内部单引号转义为
\' - Long / Integer / Short / Byte / BigDecimal / Double / Float:数值原样输出
- Date / Timestamp / LocalDateTime:格式化为
'YYYY-MM-DD HH:mm:ss' - Boolean:输出 true / false
- null:输出 NULL
- 无类型标注:能当数字就按数字输出,否则加引号按字符串输出
常见问题
- 还原的 SQL 会不会不安全?工具只在本页面内完成文本替换,日志与结果都不会上传服务器;还原出的 SQL 请仅在测试环境执行。
- 为什么提示数量不匹配?说明 Preparing 里的问号个数与 Parameters 的参数个数对不上,常见原因是日志被截断、动态 SQL 拼接了额外的问号,或复制时漏了某个参数。
- 支持一条日志多组 SQL 吗?支持。整段日志模式会自动把每组 Preparing 与紧随其后的 Parameters 配对,逐组还原并分别展示、分别复制。
相关工具推荐
Spine动画编辑器
专业的Spine动画预览和编辑工具,支持多引擎导出
SQL查询优化器
分析SQL查询并提供优化建议
JVM启动参数配置
可视化配置Java虚拟机启动参数,支持内存、GC、性能等选项
代码片段转换
不同编程语言间代码片段转换(如Python↔JavaScript)
IP地址查询
查询IP地址的地理位置、运营商、ASN等信息,支持IPv4和IPv6
JSON转TypeScript接口
根据JSON数据自动生成TypeScript类型定义
相关教程
后端排查进阶包:雪花 ID 反推、日志速析、补丁定位与跳板配置
订单号里藏着生成时刻、十万行 access.log 里找异常来源、补丁死活 apply 不上、SSH 命令越敲越长——后端排查的五件新活各有套路,外加还原 SQL、堆栈定位、连接串核对三位老将。日志、堆栈、配置全部本地处理不上传。
2026-10-20
后端交付与运维小件:数据字典、正则图解、IN 拼串与访问口令
交付文档、正则评审、ID 拼串、目录加锁——后端和运维手里那些琐碎但高频的小活儿,各有顺手的小工具:DDL 直出数据字典、正则分段图解、IN 条件自动转义分组、htpasswd 条目与 nginx 配置一次生成,全部浏览器本地完成。
2026-10-13
后端排查三件套:MyBatis 日志还原、堆栈定位与连接串核对
日志里的 SQL 满屏问号、堆栈一层包一层、连接串参数数不清——后端三类高频排查场景各有固定套路,这篇文章把原理和坑讲透,配上浏览器本地运行、数据不出本机的工具。
2026-10-11