请帮忙封装下类
表A中有如下数据:
idcode attr_A attr_B
11001 A1 B1
21001 A2 B2
31001 A3 B3
41001 A4 B4
51001 A5 B5
61002 A1 B1
71002 A2 B2
81002 A3 B3
91002 A4 B4
101002 A5 B5
111003 A1 B1
121003 A2 B2
131003 A3 B3
141003 A4 B4
151003 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
}
}