我已经为某些查询获得了ResultSet,例如:
select * from students order by roll
现在,是否可以执行等效的查询
Select * from students order by dob;`
ResultSet 上的?
答案 0 :(得分:5)
根据经验(好吧,差不多),可以在那里完成数据库中的所有操作,因此您应该使用... ORDER BY <column1>, <COLUMN2>... ASC/DESC
但是如果由于某种原因你不能这样做,你应该将RS中的所有数据提取到一个集合中(并且可能将你的数据映射到域对象)并使用Collections.sort()
方法对其进行排序。 {1}}
答案 1 :(得分:4)
我们不建议在查询后进行排序(即,当您获取ResultSet时)。 您应始终致力于在SQL Server上执行操作,而不是在代码本身上执行操作。
ResultSet 是某种迭代对象,这意味着您只能逐个移动。因此,为了对其进行排序,首先需要将数据转移到Collection中,然后才对其进行排序。 与SQL排序相比,这是开销,可以避免。
答案 2 :(得分:2)
通过迭代结果并将其添加到新列表,从ArrayList
获取ResultSet
。
然后使用Collections.sort(Collection, Comparator)
对结果进行排序