Date un'occhiata a SchemaCrawler (libero e open source), che è un altro API progettato per questo scopo. Alcuni di codice di esempio SchemaCrawler:
// Create the options
final SchemaCrawlerOptions options = new SchemaCrawlerOptions();
// Set what details are required in the schema - this affects the
// time taken to crawl the schema
options.setSchemaInfoLevel(SchemaInfoLevel.standard());
options.setShowStoredProcedures(false);
// Sorting options
options.setAlphabeticalSortForTableColumns(true);
// Get the schema definition
// (the database connection is managed outside of this code snippet)
final Database database = SchemaCrawlerUtility.getDatabase(connection, options);
for (final Catalog catalog: database.getCatalogs())
{
for (final Schema schema: catalog.getSchemas())
{
System.out.println(schema);
for (final Table table: schema.getTables())
{
System.out.print("o--> " + table);
if (table instanceof View)
{
System.out.println(" (VIEW)");
}
else
{
System.out.println();
}
for (final Column column: table.getColumns())
{
System.out.println(" o--> " + column + " (" + column.getType()
+ ")");
}
}
}
}
http://schemacrawler.sourceforge.net/
fonte
2009-06-16 19:12:44
Avete bisogno di chiudere la connessione se stessi o fa il metodo() getDatabase farlo per voi? –
@AndrewSwan - SchemaCrawler non chiude la connessione per te. Devi chiuderlo da solo. –
In tal caso, è possibile aggiornare l'esempio in modo che chiuda la connessione in un blocco finale? –