大家好想问一下 对于一个通过查询语句获得的结果集rs
如果对这个rs重新排序。。
例如:
name sex age
'yy' 'female' 12
'xx' 'male' 22
'tt' 'male' 33
我现在想把数据记录调整为
name sex age
'xx' 'male' 22
'yy' 'female' 12
'tt' 'male' 33我该怎么去做。。
如果对这个rs重新排序。。
例如:
name sex age
'yy' 'female' 12
'xx' 'male' 22
'tt' 'male' 33
我现在想把数据记录调整为
name sex age
'xx' 'male' 22
'yy' 'female' 12
'tt' 'male' 33我该怎么去做。。
如果对某一个字段或者几个字段排序有两个实现方法:
1.数据库里面查询的时候增加order by 排序字段
2.放到treeset里面可以实现排序
第二种方法可以实现复杂的排序.
直接对结果集进行处理。
如何对一个获得的结果集 进行二次处理。!
我想把其中的一条数据记录放到第一位。
这条记录是随意的。!
LinkedList + LinkedHashSet
TreeSet<MyUserObject> alluser = new TreeSet<MyUserObject>();
while(rs.next()) {
MyUserObject user = new MyUserObject(rs.getString(1), rs.getString(2), rs.getInt(3));
alluser.add(user);
}...这样操作后就set就按你写的顺序去排列好了。不要使用LinkedList及ArrayList
对于一个结果集合.我获得之后,假设里面有三百条数据.里面存放的是职业(农名,程序员,会计,学生,司机,boss,经理.................)其中第一百条的数据是医生.我现在的操作是把医生这条数据放到最前面.其他的数据的相对位置不变.至于把这个结果集怎么封装.我没有要求.
目的是 用于前台显示的时候 比如修改一个人的职业信息时候,修改栏是一个下拉列表.以前处理的时候.先把所有的职业信息全显示,然后再根据这个人的职业信息,对这个下拉列表进行处理.这些处理都是在js代码里面..我现在不想用js. 把这样的处理放在后台.当前台显示这个下拉列表的时候.它取得的结果集 的第一条数据就是医生(或者说是这个人的职务信息)
List<MyUserObject> advanceUsers = new ArrayList<MyUserObject>();
List<MyUserObject> remainUsers = new ArrayList<MyUserObject>();while(rs.next()) {
MyUserObject user = new MyUserObject(rs.getString(1), rs.getString(2), rs.getInt(3));
if(needAdvance(user))//在这里写一个方法去判断到底这个用户是否该提前
advanceUsers.add(user);
else
remainUsers.add(user);
}...
这样先显示advanceUsers 再显示remainUsers 就完事了
我现在有个想法.就是定义一个list.先做advanceUsers操作.操作之后用deleteRow删除rs中该条记录.循环到最后,游标回到前面,再把余下的记录放到这个list里面.
不知道这个想法符合实际吗....
还有个问题,请教大家,对于一个rs结果集合.我循环到最后,这个rs是不是就自动关闭了.游标无法回到前面了. 我以前这么试过.但是最后rs 就 null 了...找资料看..也没有看到相关的资料..还请有 大牛 们 不吝赐教!
小弟 多谢了.