我不能在数据库中执行ORDER BY如何在java中对ResultSet进行排序?
回答
将数据从ResultSet中移出到任何您想要的对象表示中,然后对数据进行排序,就像您在该点处的任何其他数据一样。
如果您使用Collections.Sort对复杂对象执行排序,则需要实施Comparator。
将结果提取到List<YourResultType>
并使用Collections.sort()
。如果您只需要按照“自然”顺序进行排序,则在结果类型本身中执行Comparable<T>
,否则按排序顺序执行Comparator<T>
,并将相关比较器的实例传递给Collections.sort()
。
ow我把它放回rs?我有很多事情调用rs和我不能改变,我需要rs保持原样,但排序 – code511788465541441 2010-12-07 17:51:33
@ user521180:你不。重新设计解决方案。已经够糟糕的是,您不能将数据库用于其设计的作业之一... – 2010-12-07 18:17:51
如何将其放回到RS中:可以使用实现ResultSet的CachedRowSet。但是,手动获取条目有点陈旧。尽管如此,它可以完成。 – 2017-04-20 22:40:29
你在数据库中做了ORDER BY
。
你应该重新评估为什么你不能这样做。如果有人问“如何用锤子插入螺钉?我不能用螺丝刀”,那么不要说服他们螺丝起子是第一个合适的解决方案是不负责任的。
如果你真的真的不能在本地订购结果集,那你倒霉了。这只是数据库中的一个流,因此您必须将其全部读入临时List
,对该集合进行排序,然后从那里开始。对于小型结果集这不太可能是个问题,但对于大型结果集,这可能会对效率造成相当大的影响。
它看起来像你将不得不负责实施ResultSet接口与自定义对象,会给你你正在寻找的功能....对不起。
这可以在查询本身解决。您按计算列排序。您计算的列将自然值转换为可以数字或按字母顺序排序的值。你可以定义一个“转换”函数并按顺序调用该函数。
在某些级别上,无论是在代码中还是在数据库中,都必须进行自然数字转换。算法无论运行在哪里都是一种算法。
在运行查询并存储到resultSet之前,可以在数据库中对它进行排序。
SELECT * FROM tableName ORDER BY columnName ASC
是这样的,你想要什么?
- 1. Java PriorityList,如何对它进行排序?
- 2. Java如何对multimap进行排序vs?
- 3. 在Java中对ArrayList进行排序
- 4. 在java中对JSONArray进行排序
- 5. 如何在java中对对象进行排序?
- 6. 如何在Java中对对象数组进行排序
- 7. 如何在Java中对JSON对象进行排序?
- 8. 如何在java中对arraylist中的元素进行排序?
- 9. 如何在java中对字符串数组进行排序?
- 10. 如何在Java中对HashMap进行排序?
- 11. 如何在JAVA中对JSONArray进行排序
- 12. 如何在Java中对Arraylist进行排序
- 13. 如何使用递归在Java中对队列进行排序?
- 14. 如何在Java中对XML元素进行排序?
- 15. 如何在Java中对数组进行排序?
- 16. 如何在java中对项目进行排序combobox
- 17. 如何在Java中对重复数字进行排序?
- 18. 如何在java中对三个数组进行排序?
- 19. 如何在java中对数组进行排序?
- 20. 如何在java中对一个arraylist进行冒泡排序?
- 21. 在Java 1.5中对JTable进行排序排序
- 22. 如何用java中的对象对链表进行排序
- 23. 如何从java中的命令行对姓氏进行排序
- 24. 如何在groovy中对排序列表进行排序
- 25. 如何对Java中ArrayList中的某些项目进行排序?
- 26. 如何对NSArray进行排序并在NSString中进行访问?
- 27. 如何对json对象进行排序?
- 28. 如何对行组进行排序?
- 29. 如何对java中的字母数字字符进行排序?
- 30. 如何对Java中Map的键进行排序?
1.数据集有多大? 2.为什么`ORDER BY`不是一个选项? – NPE 2010-12-07 17:28:53