由于数据迁移,如何将两个不同数据库中的值与列中的相同数据进行比较。我正在运行 jUnit 测试并且值没有通过相同的测试。我究竟做错了什么?正确知道我将源数据库和目标数据库设置为同一个数据库,即它们是相同的东西。我这样做是因为我想确保连接在整个过程中都是正确的,并将任何问题缩小到语法错误。名称列的行中的值为;计划管理、错误和增强、硬件和软件请求。
public class DemandTypeCopier {
public static String QUERY_CREATECOPY = "select name from tr_demandtype where name=?";
}
public void testQUERY_CREATECOPY() throws Exception{
UnitTestHelper helper = new UnitTestHelper();
Connection con = helper.getConnection(helper.sourceDBUrl);
Connection conTarget = helper.getConnection(helper.targetDBUrl);
String x = "Initiative management";
PreparedStatement stmt = con.prepareStatement(DemandTypeCopier.QUERY_CREATECOPY);
stmt.setString(1, x);
ResultSet sourceVal = stmt.executeQuery();
stmt = conTarget.prepareStatement(DemandTypeCopier.QUERY_CREATECOPY);
stmt.setString(1, x);
ResultSet targetVal = stmt.executeQuery();
assertTrue(helper.resultSetsEqual(sourceVal,targetVal));
}
public boolean resultSetsEqual (ResultSet source, ResultSet target) throws SQLException{
while(source.next())
{
target.next();
ResultSetMetaData metadata = source.getMetaData();
int count = metadata.getColumnCount();
for (int i =1; i<=count; i++)
{
if(source.getObject(i) != target.getObject(i))
{
return false;
}
}
}
return true;
}