求一段数据库结果集保存到ArrayList的写法?在线等~帮顶有分
结果集结构是这样
iFrame iPort
0 1
0 3
0 5
0 6
1 2
1 3
1 5
2 1
2 2
2 3
2 4
....
...
..
现在我要将这个结果集保存到ArrayList中
ArrayList dataList = new ArrayList();
dataList.add(Data) Data是一个bean 要把数据set进去
但是要多个port对应一个frame这样来放.就是get数据时要一个frame和一个port数组对应
请教各位大虾了
问题点数:55、回复次数:8Top
1 楼windinring(小鱼儿)回复于 2004-11-04 20:11:30 得分 0
说的不清楚啊,再说明白点
Top
2 楼xiyiren(深蓝)回复于 2004-11-04 20:28:32 得分 0
bean里边有两个属性 String frame 和String[] port
要把结果集里的iFrame Set给frame 与frame对应的port Set给port[]这个数组Top
3 楼xiyiren(深蓝)回复于 2004-11-04 21:08:13 得分 0
没人帮看看吗?Top
4 楼chenxb1980(倾听)回复于 2004-11-04 22:02:44 得分 0
循环判断是否有
比如
List list=new ArrayList();
rs.next(){
String frame = rs.getString(1);
String port = rs.getString(2);
if (list.size()>0){
int size = list.size();
for(int i=0;i<size;i++){
String frametemp =((bean)list.get(i)).getFrame();
if(frametemp.equals(frame)){
****自己写
}else{
bean be = new bean();
bean.setFrame(frame);
bean.setPort(port);//自己写
}
}
}
}
}
大体就这样Top
5 楼chenxb1980(倾听)回复于 2004-11-04 22:04:57 得分 25
List list=new ArrayList();
rs.next(){
String frame = rs.getString(1);
String port = rs.getString(2);
if (list.size()>0){
int size = list.size();
for(int i=0;i<size;i++){
String frametemp =((bean)list.get(i)).getFrame();
if(frametemp.equals(frame)){
****自己写
}else{
bean be = new bean();
bean.setFrame(frame);
bean.setPort(port);//自己写
list.add(bean);
}
}
}
}
}
Top
6 楼jamesfancy(▲) 边城狂人 <Java|C++] (★)回复于 2004-11-04 22:23:11 得分 10
用 ArrayList 包装每个相同 frame 的 data
再用一个 HashMap 或者 HashTable 来装这些 ArrayList,如
HashMap all = new ......
ArrayList a = new ........
a.add(new Data(frame, port))
...
当把 frame 为0的 add 完了之后
all.put(new Integer(frame), a); // 因为 a 里面都是 frame 相同的 data,所以用 frame 做关键字
然后循环,把其它的也这样放在 all 中
以后只需要用 all 来取数据就行了。
如
ArrayList aa = (ArrayList) all.get(new Integer(0))
就会取出一个包含所有 frame 为0的data的arraylistTop
7 楼xiyiren(深蓝)回复于 2004-11-04 23:06:52 得分 0
倾听兄能否再看一下,if (list.size()>0)
list.size初始就是0,根本进不去循环啊?
Top
8 楼shangyongjun(小石头)回复于 2004-11-05 09:56:42 得分 20
这是我以前写的代码:
你看看
也许对你解决这个问题有帮助
public Collection getMessage()throws Exception
{
Collection ret=new ArrayList();
try
{
Statement stm=con.createStatement();
ResultSet result=stm.executeQuery("select count(*) from message");
int message_count=0;
if(result.next())
{
message_count=result.getInt(1);
result.close();
}
if(message_count>0)
{
result=stm.executeQuery("select * from message order by time desc");
while(result.next())
{
String title=result.getString("title");
String name=result.getString("name");
String mail=result.getString("mail");
String content=result.getString("content");
java.sql.Date date=result.getDate("time");
MessageVO message=new MessageVO();
message.setName(name);
message.setTitle(title);
message.setContent(content);
message.setDate(date);
message.setEmail(mail);
ret.add(message);
}
result.close();
stm.close();
}
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}Top




