log4jdbc force return ConnectionSpy 驱动程序
log4jdbc force return ConnectionSpy driver
出于某种原因,当我使用:
connection = DriverManager.getConnection("jdbc:log4jdbc:derby:/home/user/mydb");
我倾向于得到不同的连接。在这种情况下,它是以下两者的混合:
connection = (org.apache.derby.impl.jdbc.EmbedConnection) org.apache.derby.impl.jdbc.EmbedConnection@2001280736 (XID = 598), (SESSIONID = 1), (DATABASE = /home/user/mydb), (DRDAID = null)
- 我不想要
和:
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);
出于某种原因,当我使用:
connection = DriverManager.getConnection("jdbc:log4jdbc:derby:/home/user/mydb");
我倾向于得到不同的连接。在这种情况下,它是以下两者的混合:
connection = (org.apache.derby.impl.jdbc.EmbedConnection) org.apache.derby.impl.jdbc.EmbedConnection@2001280736 (XID = 598), (SESSIONID = 1), (DATABASE = /home/user/mydb), (DRDAID = null)
- 我不想要
和:
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);