Hãy xem SchemaCrawler (miễn phí và mã nguồn mở), mà là một API được thiết kế cho mục đích này. Một số mã SchemaCrawler mẫu:
// 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/
Nguồn
2009-06-16 19:12:44
Bạn có cần để đóng kết nối cho bản thân hoặc không phương pháp() getDatabase làm điều đó cho bạn? –
@AndrewSwan - SchemaCrawler sẽ không đóng kết nối cho bạn. Bạn cần tự đóng nó lại. –
Trong trường hợp đó bạn có thể muốn cập nhật ví dụ của bạn để nó đóng kết nối trong một khối cuối cùng? –