# sql-printer **Repository Path**: huangkl1024/sql-printer ## Basic Information - **Project Name**: sql-printer - **Description**: 基于 java agent 和 javassist 实现的 sql 语句打印插件。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 4 - **Created**: 2020-12-07 - **Last Updated**: 2024-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

SQL-Printer

> SQL-Printer 是一款 sql 语句打印插件,基于 Java agent 和 Javassist 技术实现。 # 1. 技术原理 使用 javassist 技术,获取到相关的 jdbc 驱动类,对类进行动态修改。修改完成后,在通过 java agent 加载修改过的类,从而实现 jdbc 驱动执行 sql 时打印执行的 SQL 语句。 # 2. 支持的 JDBC 驱动 - MySQL # 3. 运行情况 ![image-20210206175003199](.img/image-20210206175003199.png) 上述图片中红色框框里的就是通过 `sql-printer` 增强后,打印出的日志程序 # 4. 使用方式 ## 4.1 通过 JavaAgent 启动 1. 下载源码 2. 通过 ```mvn clean install -DskipTests``` 编译安装包。编译完成后,jar 所在目录为:`sql-printer-agent/target/sql-printer-agent.jar` 4. 在需要执行的执行工程上,添加如下的 JVM 参数: ```shell -javaagent:/${path}/sql-printer-agent.jar ``` ### 4.1.1 IDEA 快捷使用方式 1. 进入 IDEA 的欢迎界面,如下图所示: ![](.img/20201208084521.png) 2. 点击右下角的 Configure,选择 Run Configuration Templates for New Projects。 ![](.img/20201208084239.png) 3. 在 Run Configuration Templates for New Projects 配置界面里,为需要的应用类型配置如下的 JVM 参数: ```shell -javaagent:/${path}/sql-printer-agent.jar ``` 例如需要配置 Application,则配置情况如下: ![](.img/20201208084425.png) 配置完后,点击 Apply 即可。 ## 4.2 通过 sql-printer-boot 启动 1. 下载源码 2. 通过 ```mvn clean install -DskipTests``` 编译安装包。编译完成后,在目录为 `sql-printer-boot/target` 目录下,有一个 `sql-printer-boot-bin.tar.gz` 文件,解压此文件。然后通过控制台进入到解压的文件夹。 3. 在控制台输入:`java -jar sql-printer-boot.jar`,回车,会出现如下的界面: ![image-20210206174244786](.img/image-20210206174244786.png) 输入要进行增强的进程序号,然后回车。成功后,会显示如下的界面: ![image-20210206174320033](.img/image-20210206174320033.png) # 5. 参考开源项目 - arthas