100分的小问题!

hqqiang 2006-04-25 08:08:07
我在数据库中查询出来N条记录:如:

字段:字段1 字段2 字段3 字段4 字段5

数据: 1 2 a 4 5
数据: 1 2 b 4 5
数据: 11 22 c 44 55
数据: 11 22 d 44 55
数据: 11 22 e 44 55
数据: …………………………………………

我想写个方法,能达到这样的效果:
数据: 1 2 a,b 4 5
数据: 11 22 c,d,e 44 55
数据: …………………………………………
即:使如果字段1中的数据相同,字段3的数据合在一起,并用“,”号连接,重新形成一条数据。

最好是java的代码,分不够再加!!!!!!

...全文
193 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdy3008 2006-04-26
  • 打赏
  • 举报
回复
不错的代码
hanjienihao1 2006-04-26
  • 打赏
  • 举报
回复
好用了别忘了散分,哈哈!!1
hanjienihao1 2006-04-26
  • 打赏
  • 举报
回复
给分居然没人要!我来拿!!!
我写了两个类,可以完成你的功能:你想要的数据被我一对象的形式放进List里,用的时候,只需把List里的东西去出来,用对象的getXXX()方法取得,如:
DBBean dbbean = (DBBean)list.get(i);
dbbean.getField1();
......


DBBean.java:

package test;

public class DBBean{
private String Field1 = null;
private String Field2 = null;
private String Field3 = null;
private String Field4 = null;
private String Field5 = null;

public String getField1() {
return Field1;
}

public void setField1(String field1) {
Field1 = field1;
}

public String getField2() {
return Field2;
}

public void setField2(String field2) {
Field2 = field2;
}

public String getField3() {
return Field3;
}

public void setField3(String field3) {
Field3 = field3;
}

public String getField4() {
return Field4;
}

public void setField4(String field4) {
Field4 = field4;
}

public String getField5() {
return Field5;
}

public void setField5(String field5) {
Field5 = field5;
}

}

MergeField.java:

package test;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class MergeField {
List list = new ArrayList();
public List mergeData(ResultSet rs) {
try {
while(rs.next()) {
if(list.size() == 0){
DBBean dbbean = new DBBean();
dbbean.setField1(rs.getString(1));
dbbean.setField1(rs.getString(2));
dbbean.setField1(rs.getString(3));
dbbean.setField1(rs.getString(4));
dbbean.setField1(rs.getString(5));
list.add(dbbean);
} else {
for(int i = 0;i < list.size();i++) {
DBBean dbbean = (DBBean)list.get(i);
if(dbbean.getField1().equals(rs.getString(1))){
dbbean.setField3(dbbean.getField3()+rs.getString(3));
} else {
dbbean = new DBBean();
dbbean.setField1(rs.getString(1));
dbbean.setField1(rs.getString(2));
dbbean.setField1(rs.getString(3));
dbbean.setField1(rs.getString(4));
dbbean.setField1(rs.getString(5));
list.add(dbbean);
}
}
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
这是我自己设计的,可能和你的需求不尽相同,你自己作相应修改巴

沈恂芝 2006-04-26
  • 打赏
  • 举报
回复
来晚了
mayi3 2006-04-26
  • 打赏
  • 举报
回复
UP 三楼
hqqiang 2006-04-26
  • 打赏
  • 举报
回复
给出代码呀?
xylwqwtd 2006-04-26
  • 打赏
  • 举报
回复
lmjzw(显示器不亮!)和lmjzw(显示器不亮!)
都说的没错,代码你适当该下就可以了
kingofworl 2006-04-25
  • 打赏
  • 举报
回复
不用游标实难完成
lmjzw 2006-04-25
  • 打赏
  • 举报
回复
用数组是一个办法,但我认为最好是为这个表写一个数据Bean,每次读取数据都和上一次比较相应的属性,当且仅当第三项不相同时,反上一个Bean的第三项数据用字符串追加上当前Bean的第三项,就可以了!我想,我说得很明白了吧!
fzlotuscn 2006-04-25
  • 打赏
  • 举报
回复
简单 用数组呀!

hqqiang 2006-04-25
  • 打赏
  • 举报
回复
人都哪去了?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧