java oracle问题 如何将查询结果在页面显示 50

现在有如下查询结果:RQIDNAMEMONEY2011-81001路径11002011-81002路径2802011-91001路径12002011-91002路径210... 现在有如下查询结果:
RQ ID NAME MONEY
2011-8 1001 路径1 100
2011-8 1002 路径2 80
2011-9 1001 路径1 200
2011-9 1002 路径2 100
2011-10 1001 路径1 250
2011-10 1002 路径2 300
2011-11 1001 路径1 150
2011-11 1002 路径2 200
2011-12 1001 路径1 180
2011-12 1002 路径2 250
2012-1 1001 路径1 180
2012-1 1002 路径2 340
2012-2 1001 路径1 240
2012-2 1002 路径2 260
... ... ... ...

以上是数据库查出来的List 现在页面上要求这样展示:(上面的日期是读出来的!)

路径名称 2011-8 2011-9 2011-10 2011-11 2011-12 2012-1 2012-2
路径1 100 200 250 150 180 180 240
路径2 80 100 300 200 250 340 260

那位哥哥知道,麻烦贴码出来,感激不尽!!!!
展开
 我来答
kak520
2012-07-03 · TA获得超过687个赞
知道小有建树答主
回答量:433
采纳率:0%
帮助的人:438万
展开全部
你的这种实现方式并不好,麻烦,而且分页不好弄,我建议使用交叉表,不过先按你的要求贴代码吧。

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
Test t = new Test();
Product p1 = t.new Product();
p1.setID("1001");
p1.setNAME("路径1");
p1.setRQ("2011-8");
p1.setMONEY(100);
Product p2 = t.new Product();
p2.setID("1002");
p2.setNAME("路径2");
p2.setRQ("2011-8");
p2.setMONEY(80);
Product p3 = t.new Product();
p3.setID("1001");
p3.setNAME("路径1");
p3.setRQ("2011-9");
p3.setMONEY(200);
Product p4 = t.new Product();
p4.setID("1002");
p4.setNAME("路径2");
p4.setRQ("2011-9");
p4.setMONEY(100);
List<Product> result = new ArrayList<Product>();// 查询出的对象
result.add(p1);
result.add(p2);
result.add(p3);
result.add(p4);

// 以下代码开始处理
Map<String, Map<String, Integer>> m = new HashMap<String, Map<String, Integer>>();
for (Product p : result) {
if (!m.containsKey(p.getNAME())) {// 无路径x的行
Map<String, Integer> sub = new HashMap<String, Integer>();
sub.put(p.getRQ(), p.getMONEY());
m.put(p.getNAME(), sub);
} else {// 已经有 路径x的行
if (!m.get(p.getNAME()).containsKey(p.getRQ())) {// 无指定日期的列
m.get(p.getNAME()).put(p.getRQ(), p.getMONEY());
}
}
}// 循环完以后,已经形成类型LZ需要的内容,直接在页面上输出就可以了

// 这里写个排序,将sub按日期排序

// 输出方式
for (String name : m.keySet()) {
Map<String, Integer> sub = m.get(name);
System.out.println("<tr>");
System.out.println("<td>" + name + "<td>");
for (String rq : sub.keySet()) {
System.out.println("<td>" + sub.get(rq) + "</td>");
}
System.out.println("</tr>");
}
}

class Product {
String RQ;
String ID;
String NAME;
int MONEY;

public String getRQ() {
return RQ;
}

public String getID() {
return ID;
}

public String getNAME() {
return NAME;
}

public int getMONEY() {
return MONEY;
}

public void setRQ(String rQ) {
RQ = rQ;
}

public void setID(String iD) {
ID = iD;
}

public void setNAME(String nAME) {
NAME = nAME;
}

public void setMONEY(int mONEY) {
MONEY = mONEY;
}

}
}
如果你需要显示
路径名称 2011-8 2011-9 2011-10 2011-11 2011-12 2012-1 2012-2
这些的话,循环一次,把sub的key也输出来就可以了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Leo分享
2012-07-04 · TA获得超过754个赞
知道小有建树答主
回答量:1405
采纳率:0%
帮助的人:759万
展开全部
是不是直接画一个table就行了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乡间回味
2012-07-17 · 超过11用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:32.5万
展开全部
根据自己的需求查询对应列进行组合
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式