我正在做一个项目,我必须比较两个大型数据库之间的所有表并匹配它们。实际上这个项目旨在实现一种数据库融合。更具体地说,如果 table1.database1 上的 row1 用 id、电话、地址等描述人“Michael”,而 table2.database2 上的特定 row2 用 id、电话、地址等描述人“Mike” ...我必须在比较后决定“迈克尔”和“迈克”是否是同一个人。
我为两个数据库做了连接,我已经赶上了表、列和行数据。由于我对java不太熟悉,我不知道如何使用提取数据并开始任何比较。存储和使用它们的最佳方式是什么?数组列表?数组?对象?载体?
例如,我有以下代码来捕获行数据:
int j = 0;
while(resTablesData1.next()) {
ResultSetMetaData rsmd = resTablesData1.getMetaData();
int colCount = rsmd.getColumnCount();
System.out.println();
for (int k=0; k<colCount ; k++) {
String colName = rsmd.getColumnName(i);
Object o = resTablesData1.getObject(colName);
columnsArrayDB1[j][k] = o.toString();
System.out.println("|-----------------------------------------------------|");
System.out.print("| "+columnsArrayDB1[j][k]+" |"+"\t");
System.out.println("|-----------------------------------------------------|");
}
j++;
}
我对两个数据库都有相同的代码。我必须将 columnsArrayDB1[0][0] 与 columnsArrayDB2[0][0] 等进行比较...如何通过优化方式做到这一点?
使用代表行数据的对象会更好吗?例如:
public class RowDataObject {
public String col1;
public String col2;
// Etc
public RowDataObject(String aCol1, String aCol2 /*.....etc */ ) {
col1 = aCol1;
col2 = aCol2; //...etc
}
}
然后读取数据
List<RowDataObject> allRows = new ArrayList<RowDataObject>();
ResultSet rs = //Your Query
while (rs.next()) {
String c1 = rs.getString("A Column Name or Index");
String c2 = rs.getString("A Column second Name or Index");
//...etc
allRows.add(new RowDataObject(c1,c2......));
}
我为这个项目处理动态值的所有工作,因为我事先不知道模式/表/列等的名称。由于我很困惑,所以请我开始一些指导方针。我的主要问题是如何编写适当的类并使用实例从它们创建对象到我提供的代码。
提前致谢。