2012-04-18 54 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