I don't know a high level API for schema comparison I used DatabaseMetaData it's not to hard to find differences i.g to retieve all tables you can do something like this:
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();
The following methods are also important for your intention:
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)