由于某些原因,当我使用:
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
始终返回net.sf.log4jdbc.ConnectionSpy
? 最佳答案
我想到了。您可以通过以下方式强制包装连接:
Connection temp = DriverManager.getConnection("jdbc:log4jdbc:derby:/home/user/mydb");
connection = new net.sf.log4jdbc.ConnectionSpy(temp);