关于ResultSet的java问题

时间:2010-05-06 05:32:39

标签: java

我想将两个Resultset Object合并到第三个。

如果您有任何想法,请回复..

VIPUL

2 个答案:

答案 0 :(得分:1)

您无法直接合并ResultSet。您有两种选择:

  1. 创建一个有效结合结果的新类;或

  2. 如果查询具有相同类型和数量的列并且来自同一个数据库,您可以UNION或(最好)UNION ALL这些查询返回一个{{1} }。

  3. 澄清(1)ResultSet实际上是一个游标。将加载一定数量的结果,但在您进入它们之前不会加载其他结果。你想如何组合它们?一个接一个地?以某种方式排序?基本上你必须自己做,但循环遍历多个ResultSet是一小段代码。

答案 1 :(得分:1)

ResultSet是一个接口,因此您可以随意实现它。在您的情况下,您可以创建一个实现ResultSet的类,但是有一个构造函数可以使用另外两个ResultSet。然后实现每个方法以委托第一个ResultSet或第二个ResultSet。例如,first()方法将调用rs1.first(),而last()将调用rs2.last()。使用next(),你必须聪明并调用rs1.next()直到rs1用完行,然后切换到rs2。您必须跟踪两个ResultSet中的哪一个对于next()调用是“当前的”。