在ResultSet Java中对数据进行排序

时间:2014-03-30 08:30:41

标签: java jdbc resultset

我已经为某些查询获得了ResultSet,例如:

select * from students order by roll 

现在,是否可以执行等效的查询

Select * from students order by dob;`
ResultSet 上的

3 个答案:

答案 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)对结果进行排序