1

所以我有一个相当大的数据库,我想在树浏览器中显示它的元数据(模式、表和列)(我使用 Schemacrawler 获取所有数据库数据,并使用 JTree 获取树)。但是,由于表和列太多,TableColumnRetriever 类需要很长时间才能获取列,这会导致我的实现出现瓶颈。

我现在的想法是对列进行延迟加载,以便仅在用户单击表格时才获取它们。Schemacrawler 中是否有办法只在开始时获取模式和表(也许将 SchemaInfoLevel 设置为最小值?),然后根据输入表/模式获取列?

ps:我用Java实现一切。

4

1 回答 1

1

SchemaCrawler 不具备您正在寻找的功能,可以加载增量加载元数据。原因是 SchemaCrawler 构建了一个互连的对象模型图,您可以在其中使用 Java 对象引用从一个表到一个外键到另一个表。但是,可能有几种方法可以解决您可以考虑的问题。一是您可以要求您的最终用户以正则表达式的形式向您提供他们感兴趣的表的描述。您可以使用 SchemaCrawler 强大的 grep 功能来快速检索该信息。另一种方法是利用模式不会经常更改的事实。您可以在应用程序首次启动时使用 SchemaCrawler 的内置功能缓存模式元数据。如果您的最终用户想要随时刷新架构,他们可以这样做,但需要了解这可能需要时间。否则,使用缓存数据时,您的应用程序的性能将非常好。

Sualeh Fatehi,SchemaCrawler

于 2017-05-09T01:41:54.500 回答