Java服务输出SQL

6/4/2024 Java后端SQL
(adsbygoogle = window.adsbygoogle || []).push({});

# 简介

往往需要输出实际执行的SQL,便于分析。

# 默认的格式

Mybatis 配置:

mybatis:
  configuration:
     ### 开启打印sql配置
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    ### 开启驼峰配置
    map-underscore-to-camel-case:true
1
2
3
4
5
6

MybatisPlus 配置:

mybatis-plus:
  configuration:
     ### 开启打印sql配置
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    ### 开启驼峰配置
    map-underscore-to-camel-case:true
1
2
3
4
5
6

输出的是?占位的SQL

# 1. mybatis 拦截器/插件

需要修改代码

https://juejin.cn/post/7252342216843821116

https://github.com/jd-opensource/sql-analysis?tab=readme-ov-file

# 2. java agent/探针

不需要修改代码,修改下启动命令就可以 有bytebuddy 使用bytebuddy则让我们更高效的处理字节码,相比于asm,javaassist,bytebuddy更强大高效

# 3. idea插件

# 类型一:格式化日志

mybatis开启日志,通过拦截控制台中的日志,自动提取 mybatis 打印的 SQL,并格式化所有参数 https://plugins.jetbrains.com/plugin/15543-mybatis-sql-print

# 类型二:agent

在启动命令添加Java agent https://plugins.jetbrains.com/plugin/24079-printsql