2010-08-16 63 views

回答

3

我不知道的模式比較我以前DatabaseMetaData它不是很難找到差異Ig與retieve所有的表,你可以做這樣的事情一個高層次的API:

DatabaseMetaData meta = con.getMetaData(); 
    ResultSet res = meta.getTables(null, null, null, 
    new String[] {"TABLE"}); 
    System.out.println("List of tables: "); 
    while (res.next()) { 
    System.out.println(
     " "+res.getString("TABLE_CAT") 
     + ", "+res.getString("TABLE_SCHEM") 
     + ", "+res.getString("TABLE_NAME") 
     + ", "+res.getString("TABLE_TYPE") 
     + ", "+res.getString("REMARKS")); 
    } 
    res.close(); 

下面的方法也

getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) 
getExportedKeys(String catalog, String schema, String table) 
getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) 
getPrimaryKeys(String catalog, String schema, String table) 
1

JDBC是處理數據庫的唯一Java API。

你必須連接到兩者,獲得他們各自的DatabaseMetaData,並比較兩者。

2

SchemaCrawler規定,提出了數據庫的元數據作爲普通老式的Java對象的Java API:爲你的意圖很重要。雖然沒有API來比較數據庫元數據對象,但SchemaCrawler使用標準差異工具生成設計爲差異化的文本(文本,JSON,CSV,HTML)輸出。

Sualeh Fatehi,SchemaCrawler

相關問題