0

是否有 JDBC 方法来获取子表及其所有后代。

getExportedKeys 仅返回直接子代,而不是其所有后代。如果我继续递归调用 getExportedKeys() 方法,大约需要 3 分钟来处理 50 个左右的表(这真的很慢)

有人可以帮我解决问题。

主要目标是避免使用查询,因为我将处理不同的数据库。

使用的递归函数:

private static void getChildTables(DatabaseMetaData dbmd,Set<String> dependencies,String tableName,String schemaname ) throws SQLException{
       ResultSet rs3 = dbmd.getExportedKeys(null,schemaname, tableName);    
         while (rs3.next()){       
if(dependencies.contains(rs3.getString(7)))
   continue;
 dependencies.add(rs3.getString(7));
 String childTable=rs3.getString(7);
getChildTables(dbmd, dependencies, childTable, null);
 rs3.close();
 rs3 = dbmd.getExportedKeys(null,schemaname, tableName);                    
         }
4

0 回答 0