【发布时间】:2016-10-05 21:01:24
【问题描述】:
我正在编写一个方法来尝试记录数据库调用,形成连接到它,在查询之后,有很多地方调用方法 connect() 开始和 cleanUp() 方法结束,我可以't也不想修改每个地方。所以顺序是这样的:
Connection con = ...
connect();
s = con.createStatement();
ResultSet rs = s.executeQuery(" select * from xyz ");
rs.next();
cleanUp();
有很多方法使用这个序列,那么我如何以某种方式在 cleanUp() 中,从所有运行查询的方法中获取 sql 查询字符串 [ 在这种情况下:select * from xyz ],是否有从“con”获取该信息的方法,con 对象是否知道它刚刚运行了什么查询?
【问题讨论】:
-
你能使用合适的 JDBC 日志框架吗?
-
This article 给出了一些如何通过数据源代理监控语句的示例。如果你碰巧用的是Oracle,驱动也有一些built-in diagnostic capabilities。
-
我最喜欢这个答案,如何选择它作为我的选择^_^?!
标签: java jdbc database-connection