平时开发使用的 Ibatis,Hibernate,Spring jdbc 的 SQL 日志信息,有一个缺点是占位符与参数是分开打印的,如果想要拷贝 SQL 语句至 PLSQL Developer 客户端直接执行,需要自己拼凑完整的 SQL。如果程序用的是原始的 jdbc 和 PreparedStatement 的话,甚至都不会有 SQL 日志打印出来,这给我们在调试程序的时候带来了很大的不便。
log4jdbc 是工作在 jdbc 层的一个日志框架,能够记录 SQL 及数据库连接执行的信息,它可以把参数直接放在 SQL 语句对应的占位符上,打印出能够直接拷贝执行的 SQL,非常方便,能加快调试速度。
下面是应用 log4jdbc 的一个小栗子。
Step 1
首先需要导入 log4jdbc 相关的 jar 包,如下。
Step 2
新建两个配置文件:log4j.properties 和 dbconfig.properties。
- log4j.properties 配置如下:
1 | log4j.logger.jdbc.sqlonly=DEBUG,console |
- dbconfig.properties 配置如下:
1 | url:jdbc:log4jdbc:oracle:thin:@192.168.1.44:1521:orcl |
不同的数据库有不同的 url 和 driverClassName,上面的配置对应 Oracle 数据库。MySQL 对应的配置如下:
1 | url:jdbc:log4jdbc:mysql://localhost:3306/testbase |
Step 3
测试程序:
1 | /** |
运行结果: