2012-04-18 1 views
1

2つの結果セットが等しいかどうかを特定する特別な方法はありますか?2つの結果セットが等しいかどうかを一意に識別する方法?

問題は、同時に2つの結果セットにアクセスできないことです。したがって、結果セット1のハッシュ値を作成して保存し、後で結果セット2を取得してハッシュ値2を作成し、それらが等しいかどうかを確認する方が良いです。

結果セットオブジェクトをシリアル化し、そのオブジェクトのハッシュ値を取得しようとしました。しかし、ResultSetオブジェクトは直列化できないため、これは機能しませんでした。 (Javaを使ってみました)

+3

ResultSetCompareクラスを使用する必要があります。この記事を参照してください。http://incubator.apache.org/jena/documentation/javadoc/arq/com/hp/hpl/jena/sparql/resultset/ResultSetCompare.html –

+1

[結果セットの比較] [1]このリンクをチェックしてください、それはあなたの原因を助けるかもしれません。 [1]:答えの男性のためのhttp://stackoverflow.com/questions/6582093/comparing-resultsets-in-jdbc – user1340312

+0

@ZazGmy感謝。同じ時間に2つの結果セットに直接アクセスすることはできないので、少し問題があります。ResultSet1に対してhashvalue1を作成し、後でquery2を実行してResultSet2を取得し、hashvalue2を生成すると、2つのハッシュ値は等しい。 (私は質問を編集しました) –

答えて

1

ハッシュ値の1つまたは両方を変数またはテーブルに格納する必要があります。たとえば、最初の値を見つけてグローバル変数に格納し、その値を引き出すことができますコードの最後に2番目の値を見つけて2つの値を比較します。日時スタンプを含むテーブルにそれらを格納すると、時間の経過とともに変更が行われたときを追跡できます。

+0

はい、それは私が持っている問題です。しかし、ハッシュ値を作成するための高速なメカニズムが必要です。結果セットのサイズが大きい場合、ハッシュ値を作成する時間が非常に長くかかることがあります。これにはDBMS_SQLHASHという関数が組み込まれていますが、残念ながら私のアプリケーションではMySQLデータベースを使用しています。 –