# 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 语句打印插件,基于 Java agent 和 Javassist 技术实现。
# 1. 技术原理
使用 javassist 技术,获取到相关的 jdbc 驱动类,对类进行动态修改。修改完成后,在通过 java agent 加载修改过的类,从而实现 jdbc 驱动执行 sql 时打印执行的 SQL 语句。
# 2. 支持的 JDBC 驱动
- MySQL
# 3. 运行情况

上述图片中红色框框里的就是通过 `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 的欢迎界面,如下图所示:

2. 点击右下角的 Configure,选择 Run Configuration Templates for New Projects。

3. 在 Run Configuration Templates for New Projects 配置界面里,为需要的应用类型配置如下的 JVM 参数:
```shell
-javaagent:/${path}/sql-printer-agent.jar
```
例如需要配置 Application,则配置情况如下:

配置完后,点击 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`,回车,会出现如下的界面:

输入要进行增强的进程序号,然后回车。成功后,会显示如下的界面:

# 5. 参考开源项目
- arthas