如何在Java中从连接中获取查询字符串?
我正在编写一个方法,尝试记录数据库调用,表单连接到它,在查询之后,有很多地方调用方法connect()开始,cleanUp()结束,我不能也不想修改每个地方。所以顺序是这样的:如何在Java中从连接中获取查询字符串?,java,jdbc,database-connection,Java,Jdbc,Database Connection,我正在编写一个方法,尝试记录数据库调用,表单连接到它,在查询之后,有很多地方调用方法connect()开始,cleanUp()结束,我不能也不想修改每个地方。所以顺序是这样的: Connection con = ... connect(); s = con.createStatement(); ResultSet rs = s.executeQuery(" select * from xyz "); rs.next(); cleanUp(); 有很多方法都使用这个序列,
Connection con = ...
connect();
s = con.createStatement();
ResultSet rs = s.executeQuery(" select * from xyz ");
rs.next();
cleanUp();
有很多方法都使用这个序列,那么我如何在cleanUp()中从所有运行查询的方法中获取sql查询字符串[在本例中:select*from xyz],有没有办法从“con”中获取该信息,con对象是否知道它刚刚运行了什么查询?我建议您使用一个方面,AspectJ非常适合这种情况。 使用方面,您可以在执行受监视的方法后触发行为。
下面是几个您可以检查的示例:您可以在MySQL中从
语句中获取它。toString()
您可以使用适当的JDBC日志框架吗?给出了一些如何通过数据源代理监视语句的示例。如果您碰巧使用Oracle,驱动程序也有一些。我最喜欢这个答案,如何选择它作为我的选择^ ^?!