如何在java中重新排列resultset数据行?
其中afrealtimeIssuation是如何在java中重新排列resultset数据行?,java,javabeans,resultset,Java,Javabeans,Resultset,其中afrealtimeIssuation是ActionForm 使用上面的代码片段,我得到如下输出 List userProcessedCountCol = new ArrayList(); while (iResultSet1.next()) { afRealTimeIssuance afRealTimeIssuance = new afRealTimeIssuance();
ActionForm
使用上面的代码片段,我得到如下输出
List userProcessedCountCol = new ArrayList();
while (iResultSet1.next()) {
afRealTimeIssuance afRealTimeIssuance = new afRealTimeIssuance();
Integer i = 0;
afRealTimeIssuance.setSub_channel(iResultSet1.getString(++i));
afRealTimeIssuance.setAgent_names(iResultSet1.getString(++i));
afRealTimeIssuance.setFtd(iResultSet1.getDouble(++i));
afRealTimeIssuance.setMtd(iResultSet1.getDouble(++i));
afRealTimeIssuance.setQtd(iResultSet1.getDouble(++i));
userProcessedCountCol.add(afRealTimeIssuance);
}
但是我想把输出重新安排为
1 A 100
2 B 200
3 C 300
4 D 400
简而言之,我想根据需要重新排列行。如何根据一个特定值排列resultset数据。请在SQL查询中使用
ORDER BY
子句或Collections.sort()
使用比较器查看列表
:afrealtimeinsuance
而不是afrealtimeinsuance
无法手动重新排列结果集(仅使用sql)。可以重新安排的是保存对象的数据结构
您可以使用行对象的ArrayList并将每一行插入到所需的位置
在您的示例中,在while循环中:
2 B 200
4 D 400
3 C 300
1 A 100
您可以在以下两个级别执行操作:
- 数据库级
- Java级别
在数据库级别,操作返回结果顺序的唯一方法是在sql查询中使用“order BY ASC/DESC”。请注意,您不能依靠任何其他方式从数据库中获取有序结果
在java级别,您可以像这样存储对象:
-使用可排序的集合。使您的操作形式具有可比性或实现一个比较器
允许根据需要对元素进行排序。
然后,您可以使用根据自己的条件获取有序集合
你也可以考虑使用代替列表
这个数据结构将允许您只添加数据,并且给定您预先定义的比较器,它将始终被排序。但是加法的复杂性是对数的,所以由您决定
希望这有帮助有两种方法可以做到这一点。您可以修改查询以使用ORDERBY子句来排列结果。其次,您可以实现Comparator接口并定义您的Comparator类,并使用Collection.sort(列表,Comparator c)对数据进行排序。我不希望数据按任何顺序排列,即升序或降序。我希望按照我的意愿排列。以下方法定义行对象正确吗?ArrayList行=新的ArrayList();是的,非常好,但我认为您真正需要的是ArrayList rows=new ArrayList();所以是一个合作网站(见),没有必要在一小时后重复与我完全相同的答案。。。这只会增加噪音。一旦你的声誉达到50,你可以对现有的答案进行评论,以便对其进行改进。
userProcessedCountCol.add(index, element);