我想知道是否存在一个免费工具来自动识别/检测java进程使用的db表? sonarqube会这样做吗?考虑到商业工具,CAST会做吗?
答案 0 :(得分:0)
SonarQube中没有这样的功能。
答案 1 :(得分:0)
这完全取决于你的目标是什么。基本上,可能有2: 1.您想知道哪些表是由不同的Java类访问的,因为您需要知道代码的哪一部分 - 事实上,可能是来自不同应用程序的代码 - 可能会受到表上更改的影响。这称为“影响分析”。 2.您想知道不同的Java类是否在同一个表上执行相同的语句 - 更新,插入,删除。这是重复的代码,这是一个糟糕的编程实践。
CAST可以做到这两点,但有两个不同的工具。由于案例#1无法自动化,您必须手动完成。 SonarQube可以识别重复的代码并回答案例#2,尽管他们有一些计划做案例#1。也许在今年或明年结束时,我真的不知道什么时候,以及它在何种程度上可以实现自动化。
现在,您必须了解影响分析是一个手动过程,并且可能或多或少耗时,并且不完全安全(我的意思是,结果可能是错误的)取决于很多因素,主要是您的知识该工具,如何进行手动影响分析,以及您分析的代码和数据库。例如,您可以拥有一个带有链接的数据库#1和另一个数据库#2的触发器,您正在搜索对表的影响,但如果您尚未分析数据库#1,那么您错过了它。
如果你能给我更多关于你用例的准确性,我将能够更准确地回答你的问题。
最好的问候。