首页 / Java / Mybatis日志参数快速替换占位符工具的详细步骤

Mybatis日志参数快速替换占位符工具的详细步骤

Mybatis log printf工具网页地址: http…

Mybatis log printf工具网页地址: http://www.feedme.ltd/log.html

Mybatis执行的sql的打印格式为:

2020-08-04 09:16:44 -DEBUG – [io-8888-exec-5] .mapper.operation.OperationMapper.insert.        debug 145 : ==>  Preparing: INSERT INTO tulu.t_log_operation (id, module, module_description, type, method, operator, operate_time) VALUES (?, ?, ?, ?, ?, ?, unix_timestamp(now()))
2020-08-04 09:16:44 -DEBUG – [io-8888-exec-5] .mapper.operation.OperationMapper.insert.        debug 145 : ==> Parameters: 2743672230717162752(Long), 1(Integer), 登录(String), 3(Integer), com.simba.tuloosa.controller.auth.LoginController.nativeLogin(String), 6d63b98cbe5e42d18c126da149162404(String)
2020-08-04 09:16:44 -DEBUG – [io-8888-exec-5] .mapper.operation.OperationMapper.insert.        debug 145 : <==    Updates: 1

IDEA里有一个插件Mybatis log plugin可以帮我们快速的提取参数拼成完整的SQL语句执行,以快速排错,但是很可惜,他是收费的ε=(´ο`*)))唉,整来整取也没法破解,算了,不如自己写一个挂到公网上,也能复制sql随时拼接,纯js即可。

下面我们来逐步分析一下需要的步骤:

  1. 首先需要提取出preparedStatement语句
  2. 提取出所有的参数,String类型还需要手动添加引号
  3. 将statement中的占位符?替换为对应的参数

很简单吧,就这三步即可。接下来动手操作。

1、提取statement:只需截取从Preparing到行尾的n即可

indexOf(str: string):提取第一个匹配到的字符串的位置,返回其索引值

2、提取参数:只需截取从Parameters到其行尾的n即可

这时我们需要提取到str的第二个n换行符,怎么提取某个字符串中的第n个字符串呢?

indexOf()函数在js中是有重载的,默认提取第一个匹配的。它可以接受第二个参数,可以传入一个起始位置,即从position(索引)开始取第一个匹配的。

分析:取第二个n,我们可以将第一个n的索引传入再加1;取第三个n,则将第二个n的索引传入加1,以此类推,所以这是一个递归函数,实现如下

接下来先测试一下index函数,打印正确

完成函数提取,所以回到上面的步骤,继续提取第二个n的位置

获取参数后以逗号切割,返回是一个字符串参数数组

提取完毕,则进行第三步的替换

3、替换参数

这样我们就实现了整个的js遍历、寻找、替换逻辑,整个过程就是不停的去indexOf(),substring()和replace(),是不是很简单呢,手写一个就不用了去找插件了。

我把这个网页放在了我的公网服务器上,访问地址是http://www.feedme.ltd/log.html
方便直接打开使用。

另外懒得写样式和DOM,所以在线引用了vue.js和elemenui,可能会出现有时候加载js文件速度比较慢的情况。

最后贴出整个HTML代码:

总结

到此这篇关于Mybatis日志参数快速替换占位符工具的文章就介绍到这了,更多相关Mybatis日志参数替换占位符内容请搜索我是攻城狮以前的文章或继续浏览下面的相关文章希望大家以后多多支持我是攻城狮!

本文来自网络,不代表我是攻城狮立场,转载请注明出处:https://www.54gcs.cn/programming/java/88971.html

helwo作者

上一篇
下一篇

为您推荐

发表评论

联系我们

联系我们

在线咨询: QQ交谈

邮箱: web@5vo.cn

工作时间:周一至周五,9:00-17:30,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

手机访问
手机扫一扫打开网站

手机扫一扫打开网站

返回顶部
跳至工具栏