2012-04-18 55 views
1

是否有特定的方法來確定兩個結果集是否相等?如何唯一標識兩個結果集是否相等?

問題是我無法同時訪問兩個結果集。因此,最好爲resultset1創建一個hash值並存儲它,並獲取後面的resultset2並創建hash值2並檢查它們是否相等。

我試圖序列化結果集對象並獲取該對象的散列值。但是因爲無法序列化ResultSet對象,所以這不起作用。 (我嘗試使用java)

+3

你應該使用ResultSetCompare類。看到這篇文章http://incubator.apache.org/jena/documentation/javadoc/arq/com/hp/hpl/jena/sparql/resultset/ResultSetCompare.html – 2012-04-18 04:55:28

+1

[比較結果集] [1]請檢查這個鏈接,它可能會幫助你的事業。 [1]:你的答案傢伙http://stackoverflow.com/questions/6582093/comparing-resultsets-in-jdbc – user1340312 2012-04-18 04:58:31

+0

@ZazGmy感謝。我有一個小問題,因爲我不能同時直接訪問兩個結果集。最好是我可以爲ResultSet1創建一個hashvalue1,然後再執行query2來獲取ResultSet2並生成hashvalue2,看看這兩個hash值是相等的。 (我編輯了這個問題) – 2012-04-18 05:05:52

回答

1

您需要將一個或兩個散列值存儲在變量或表中:例如,您可以找到第一個值並將其存儲在全局變量中,然後將該值到代碼的最後找到第二個值,然後比較這兩個值。如果將它們存儲在帶有日期時間戳的表格中,則可以跟蹤隨時間發生的更改。

+0

是的,這是我遇到的問題。但我需要一個快速機制來創建一個哈希值。因爲如果結果集的大小很大,創建散列值的時間可能會很長。有一個名爲DBMS_SQLHASH的內置函數來做到這一點,但不幸的是我在我的應用程序中使用MySQL數據庫。 – 2012-04-18 06:19:33