因此,我有一个相当大的数据库,希望在树浏览器中显示其元数据(模式、表和列)(我使用Schemacrawler获取所有DB数据,并为树显示JTree )。但是,由于表和列太多,TableColumnRetriever类需要很长时间才能获取列,这在我的实现中造成了瓶颈。
我现在的想法是对列进行延迟加载,这样只有当用户单击表时才会获取它们。Schemacrawler中是否有一种方法可以在开始时只获取模式和表(可能将SchemaInfoLevel设置为最小?)然后根据输入表/模式获取列吗?
ps:我用Java实现了所有的东西。
发布于 2017-05-09 01:41:54
SchemaCrawler没有您想要的功能,无法加载增量加载的元数据。原因是SchemaCrawler构建了一个相互关联的对象模型图,您可以使用从表到外键到另一个表。然而,可能有几种方法可以解决您的问题,您可以考虑。其一,您可以要求最终用户以正则表达式的形式向您提供他们感兴趣的表的描述。您可以使用SchemaCrawler强大的grep功能来快速检索该信息。另一种方法是利用模式不经常更改的事实。当应用程序第一次启动时,可以使用SchemaCrawler的内置功能缓存模式元数据。如果最终用户希望随时刷新模式,他们可以理解这可能需要时间。否则,使用缓存的数据,应用程序的性能将非常好。
Sualeh Fatehi,SchemaCrawler
https://stackoverflow.com/questions/43805327
复制相似问题