log4jdbc force return ConnectionSpy 驱动程序

log4jdbc force return ConnectionSpy driver

出于某种原因,当我使用:

connection = DriverManager.getConnection("jdbc:log4jdbc:derby:/home/user/mydb");

我倾向于得到不同的连接。在这种情况下,它是以下两者的混合:

  1. connection = (org.apache.derby.impl.jdbc.EmbedConnection) org.apache.derby.impl.jdbc.EmbedConnection@2001280736 (XID = 598), (SESSIONID = 1), (DATABASE = /home/user/mydb), (DRDAID = null) - 我不想要

和:

  1. connection = (net.sf.log4jdbc.ConnectionSpy) net.sf.log4jdbc.ConnectionSpy@32b260fa - 我确实想要

更具体地说,当我 运行 使用 public static void main 方法时它起作用了,我返回 #2 但是当我 运行 在 运行 启动 Web 应用程序的启动周期然后我得到 #1.

有没有办法强制log4jdbc总是returnnet.sf.log4jdbc.ConnectionSpy

我明白了。您可以通过这种方式强制包装连接:

Connection temp = DriverManager.getConnection("jdbc:log4jdbc:derby:/home/user/mydb");
connection = new net.sf.log4jdbc.ConnectionSpy(temp);