2014-12-04 78 views
0

有没有办法记录运行在Tomcat中的应用程序读取/写入的所有数据库表(以及其他对象)?所有数据库访问都通过Hibernate(通过Spring连接)或Sql2o来执行。记录JDBC访问的所有数据库对象

我们正在迁移遗留数据库,自动将实际使用的表与纯粹遗留的表分开(我们有很多这些!),这将非常好。

谢谢!

+0

如果需要表格,您可以建立JDBC连接并说'select * from tab'。 – hemanth 2014-12-04 09:09:59

+0

你可以记录所有的sql请求(hibernate有它的选项),但是看起来你的映射更容易吗?不知道Sql2o是什么,但认为它也可以记录sql。 – talex 2014-12-04 09:15:55

+1

恕我直言,没有一个100%可靠。然而,您可能会尝试配置类似http://p6spy.github.io/p6spy/的内容,然后在一周后,尝试对日志文件中的每个旧数据库表名进行grep。那些没有被grep发现的东西至少在一个测试周中没有被使用过。 – Michal 2014-12-04 09:18:59

回答

1

您可以创建新的Aspect,因为您已经在使用Spring,并且监控您的所有读/写服务,所以每次调用它时,都可以记录它。

它应该很容易,定义新的方面(f.e.myAspect),定义之前/之后或循环操作(这将记录您的表名称),并将注释放在您的服务(@MyAspect)上。

另一种方法是在你的表上创建触发器(不知道这是否是一个选项),但是我认为是一个方面......这是更清洁的方法。

相关问题