2

ResultSetJava (RS1と) で2 つの を比較する方法を探していますRS2

注意事項・必要事項

  • 結果セットは 2 つの異なるデータベース ( Oracle& SQl-Server) からのものです。したがって、取得した結果を比較するために SQL クエリを変更することはできません。

  • いずれのResultSetも、互いにより多くの行を持つことができます。

  • のいずれかがResultSet他のものにないデータを持つことができますResultSet

例:

RS1                        RS2
Column1 Column2            Column1 Column2 Column3
A       1                  A       2       ITEM1
C       1                  B       4       ITEM2
D       2                  C       2       ITEM3
E       5                  D       1       ITEM4

期待される結果

==> A は有効です。これはRS1&にあるため、RS2 の A に対してRS2も> RS1 の Aに対しても有効ですColumn2Column2

==> RS1 には存在しないため、B は無効です。

==> C は有効です。RS1&にあるため、RS2 の C についてRS2も> RS1 の C についてColumn2Column2

==> D は無効です。これは、RS2の D の場合でも、RS1 の Dの場合RS1でもRS2あるためです。Column2Column2

==> E は存在しないため無効ですRS2

この問題を解決するための可能なオプションを探しています。

4

4 に答える 4

3

両方の をトラバースし、ResultSetに保存しますMap<String, Integer>。その後、 のいずれかをトラバースして、keySetを比較し続けることができますvalues

ResultSetこれにより、任意の種類の DB( ) からの2 を比較できますOracle, MySql, SQLServer, etc.

于 2013-04-05T04:50:46.740 に答える
0

各 ResultSet から値を読み取り、List に入れ、2 つの List を比較することをお勧めします。列に関する情報を取得するために、各結果セット
に対して実行できます。 これには列数などの情報が含まれ、各列の値を取得してリストに追加する単純なループを作成できます。 getMetaData

于 2013-04-05T05:00:55.820 に答える