日期:2014-05-20  浏览次数:20713 次

请帮忙封装下类
表A中有如下数据:
id code attr_A attr_B
1 1001 A1 B1
2 1001 A2 B2
3 1001 A3 B3
4 1001 A4 B4
5 1001 A5 B5
6 1002 A1 B1
7 1002 A2 B2
8 1002 A3 B3
9 1002 A4 B4
10 1002 A5 B5
11 1003 A1 B1
12 1003 A2 B2
13 1003 A3 B3
14 1003 A4 B4
15 1003 A5 B5


实体类为:
class CodeInfo{
  String code;
  List attrA;
  String attrB;
}

select * from A;

我现在将表A中的数据查出后,要封装到CodeInfo里面。只要创建3个类的实例。因为不同的code只有三个.
请问在while(rs.next){ }中怎么写才能将数据封装成如下形式:就是将相同code的attr_A的值放在List中,将atrr_B的值拼接起来。
CodeInfo c1 = new CodeInfo();
c1.code="1001";
c1.attrA=listA; // (List listA = new ArryList(); listA.add("A1");listA.add("A2");listA.add("A3");listA.add("A4");listA.add("A5");)
c1.attrB="B1B2B3B4B5";

CodeInfo c2 = new CodeInfo();
c2.code="1002";
c2.attrA=listA; // (List listA = new ArryList(); listA.add("A1");listA.add("A2");listA.add("A3");listA.add("A4");listA.add("A5");)
c2.attrB="B1B2B3B4B5";

.......
真不知该怎么表达,不知说明白了没。






------解决方案--------------------
CodeInfo c1 = new CodeInfo(); 
//下边这些初始化可以在类构造里处理
c1.code="1001"; 
c1.attrA= new ArryList();
c1.attrB="";

CodeInfo c2 = new CodeInfo(); 
c2.code="1002"; 
c2.attrA= new ArryList();
c2.attrB="";

CodeInfo c3 = new CodeInfo(); 
c3.code="1002"; 
c3.attrA= new ArryList();
c3.attrB="";


while(rs.next){ 
//……
if(c1.code.equals(code)){//若当前的code与c1相同
c1.attrA.add(attr_A);//添加attr_A
c1.attrB+=attrB;//连接attrB

}else if(c2.code.equals(code)){//若当前的code与c2相同
c2.attrA.add(attr_A);//添加attr_A
c2.attrB+=attrB;//连接attrB

}else if(c3.code.equals(code)){//若当前的code与c3相同
c3.attrA.add(attr_A);//添加attr_A
c3.attrB+=attrB;//连接attrB
}

}