データ移行のため、列の同じデータを使用して 2 つの異なるデータベースの値を比較するにはどうすればよいですか。jUnit テストを実行していますが、値が同じようにテストに合格していません。私は何を間違っていますか?sourceDB と target データベースが同じデータベースに設定されていることを知っています。つまり、それらは同じものです。これを行ったのは、プロセス全体で接続が正しいことを確認し、問題を構文エラーに絞り込むためです。名前列の行の値は次のとおりです。イニシアチブ管理、バグと機能強化、ハードウェアとソフトウェアのリクエスト。
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;
}