[英]How to combine two ResultSets in Java?
我有两个具有相同字段的结果集( rs1
和rs2
)。 现在,如何将这两个结果集合并为一个,以便重复的行显示一次。
如果两个ResultSet
来自同一个数据库,那么为什么不在检索过程中使用union
组合它们; 例如
select A, B
from C
union
select A, B
from D
但是,如果这不是一个选项,那么我建议定义一个Row
类来表示从ResultSet
提取的Row并实现equals
/ hashCode
以允许比较Row
的相等性。 然后只需将每Row
添加到Set
(例如HashSet
)以删除重复项。
您可以:
equals()
和hashCode()
方法(让您的IDE帮助您生成这些) 创建一个Set
( HashSet
):
设置combinedDataSet = new HashSet();
迭代每个resultSet,并构造对象:
while (rs1.next) { YourClass obj = new YourClass(); obj.setSomeProperty(rs.getString(1)); obj.setAnotherProperty(rs.getString(2)); // etc.. cominbedDataSet.add(obj); }
对rs2
相同的迭代
仅在您无法通过SQL查询获得所需结果时执行此操作!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.