java - 如何从Java中的连接获取查询字符串?

标签 java jdbc database-connection

我正在编写一个方法,尝试记录数据库调用,形成连接到它的连接,在查询之后,有很多地方调用方法 connect() 来启动并调用 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 对于这种情况来说是完美的。 使用方面,一旦执行受监视的方法,您就可以触发行为。 您可以检查以下几个示例:http://www.yegor256.com/2014/06/01/aop-aspectj-java-method-logging.htmlhttps://mathewjhall.wordpress.com/2011/03/31/tracing-java-method-execution-with-aspectj/

关于java - 如何从Java中的连接获取查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39883597/

相关文章:

java - 在顺序排序的流中查找丢失的整数

java - 如果数据库行不存在,如何插入?

sql-server - 为什么只有部分用户收到错误 : "Connection is busy with results for another command"

java - JNDI ClassCastException 与 tomcat 6.0.26

sql - H2 数据库损坏

c# - 关闭 SQLDataReader - 如何判断它们是否已关闭?

c# - 在 EF 6 中的运行时更改连接字符串

Java 扫描仪错误 : Exception in thread "main" java. util.NoSuchElementException

java - 对社交 api 身份验证的抄写员进行故障排除

java - 如何在不重复java中其他方法的情况下调用一个方法