它是否存在一个免费的工具来自动识别java进程使用的数据库表?sonarqube会这么做吗



我想知道是否存在一个免费的工具来自动识别/检测java进程使用的数据库表?sonarqube会这么做吗?考虑到商业工具,CAST会做吗?

SonarQube中没有这样的功能。

这完全取决于你的目标。基本上可以有2个:1.您想知道哪些表是由不同的Java类访问的,因为您需要知道代码的哪一部分——事实上,可能是来自不同应用程序的代码——可能会受到表更改的影响。这被称为"影响分析"。2.您想知道不同的Java类是否在同一个表上执行相同的语句——update、insert、delete。这是重复的代码,这是一种糟糕的编程实践。

CAST可以同时使用这两种工具,但使用两种不同的工具。因为案例#1不能自动进行,所以您必须手动进行。SonarQube可以识别重复的代码并回答案例#2,尽管他们有一些做案例#1的计划。也许在今年年底或明年,我真的不知道什么时候,在什么程度上可以实现自动化。

现在,你必须明白,影响分析是一个手动过程,可能或多或少很耗时,而且不完全安全(我的意思是,结果可能是错误的),这取决于很多因素,主要是你对工具的了解,如何进行手动影响分析,以及你分析的代码和数据库。例如,您可以有一个数据库#1,其中有一个到另一个数据库#2的链接和触发器,您正在搜索对表的影响,但如果您没有分析数据库#1,那么,您就错过了它。

如果你能给我更多关于你的用例的精确性,我将能够更精确地回答你的问题。

致以最良好的问候。

最新更新