在 Schemacrawler 中按需加载?
On demand loading in Schemacrawler?
所以我有一个相当大的数据库,我想在树浏览器中显示它的元数据(架构、tables 和列)(我使用 Schemacrawler 获取所有数据库数据,并使用 JTree那个树)。但是,由于 table 和列太多,TableColumnRetriever class 需要很长时间才能获取列,这导致我的实现出现瓶颈。
我现在的想法是对列进行延迟加载,这样它们只会在用户单击 table 时被提取。 Schemacrawler 中有没有一种方法可以只在开始时获取模式和 tables(也许将 SchemaInfoLevel 设置为最小值?)然后根据输入 table/schema 获取列?
ps:我在 Java.
中实现了所有内容
SchemaCrawler 不具备您正在寻找的功能,无法加载元数据的增量加载。原因是 SchemaCrawler 构建了一个互连的对象模型图,您可以在其中使用 Java 对象引用从 table 到另一个 table 的外键。但是,可能有几种方法可以解决您可以考虑的问题。一种是您可以要求您的最终用户以正则表达式的形式向您提供他们感兴趣的 table 的描述。您可以使用 SchemaCrawler 强大的 grep 功能来快速检索该信息。另一种方法是利用架构不会经常更改的事实。您可以使用 SchemaCrawler 的内置功能在应用程序首次启动时缓存模式元数据。如果您的最终用户想要随时刷新架构,他们可以这样做,但要知道这可能需要一些时间。否则,使用缓存数据,您的应用程序的性能会非常好。
苏阿莱赫·法塔希,SchemaCrawler
所以我有一个相当大的数据库,我想在树浏览器中显示它的元数据(架构、tables 和列)(我使用 Schemacrawler 获取所有数据库数据,并使用 JTree那个树)。但是,由于 table 和列太多,TableColumnRetriever class 需要很长时间才能获取列,这导致我的实现出现瓶颈。
我现在的想法是对列进行延迟加载,这样它们只会在用户单击 table 时被提取。 Schemacrawler 中有没有一种方法可以只在开始时获取模式和 tables(也许将 SchemaInfoLevel 设置为最小值?)然后根据输入 table/schema 获取列?
ps:我在 Java.
中实现了所有内容SchemaCrawler 不具备您正在寻找的功能,无法加载元数据的增量加载。原因是 SchemaCrawler 构建了一个互连的对象模型图,您可以在其中使用 Java 对象引用从 table 到另一个 table 的外键。但是,可能有几种方法可以解决您可以考虑的问题。一种是您可以要求您的最终用户以正则表达式的形式向您提供他们感兴趣的 table 的描述。您可以使用 SchemaCrawler 强大的 grep 功能来快速检索该信息。另一种方法是利用架构不会经常更改的事实。您可以使用 SchemaCrawler 的内置功能在应用程序首次启动时缓存模式元数据。如果您的最终用户想要随时刷新架构,他们可以这样做,但要知道这可能需要一些时间。否则,使用缓存数据,您的应用程序的性能会非常好。
苏阿莱赫·法塔希,SchemaCrawler