查询结果如下:
id userName pagerName amount
1 U1 报纸1 10
2 U1 报纸2 20 
3 U2 报纸2 30 
4 U3 报纸1 40
5 U3 报纸2 50
6 U4 报纸1 60在jsp上要显示结果如下:用户 报纸1 报纸2
U1   10    20
U2         30 
U3   40    50
U4   60请问要怎么封装数据,和显示

解决方案 »

  1.   

    我知道是用list封装数据 ,但怎么封装
      

  2.   

    用这个类封装
    public class UserInfo {
    String username;
    Map map = new HashMap();
    /*
    map.put("报纸1",10);
    map.put("报纸2",20);
    /*
    }
      

  3.   

    报纸名是不确定的,好像不能用hashMap
      

  4.   


    应该用HASHMAP首先创建一个对象 看起来你是以用户统计的 既然是用户统计的话HASHMAP的KEY应该是用户
    对象内持有个报纸类别的LIST LIST里再有一个对象 该对象记录报纸类别和保险的数量
      

  5.   

    是不是变成这样的结果集:
    userName 报纸1 报纸2 报纸3
    u1 20 20 20
    u2 10 10 10
    u3 30 30 30这样很容易做到,只要改SQL就行了。
      

  6.   

    参考hibernate 多对多关系模型。
      

  7.   

    我的不是hibernate我是用struts的。
      

  8.   

    你想变成hibernate那样,自动生成list?
    你用的是什么连接数据库?jdbc?那样的话,遍历出来,然后一个个list.add()
    然后再return list;
      

  9.   

    根据页面来封装啊,都知道页面要什么数据了,
    class Compose{
       private String 用户 
        private String 报纸1 
        private String 报纸2
       public void set....
       public String get....
    }
      

  10.   

    既然这个SQL里的格式是固定的
    userName pagerName amount
    那么就写一个bean
    private List userNamel;
    private List<String> pagerName;
    private List<int> amount;
    供参考,不知道可行否...请大家指点下...
      

  11.   

    LZ的报纸是不固定多少的,所以得用个List来装...
      

  12.   


    如:Map map = new hashMap();
    List list = new ArrayList();
    list.add(new Baozhi("报纸1",10));
    list.add(new Baozhi("报纸2",20));
    map.put(username,list);
    ..
      

  13.   

    18楼的我现在已经能实现我要的显示结果:
    userName 报纸1 报纸2 报纸3
    u1 20 20 20
    u2 10 10 10
    u3 30 30 30查询结果集也是这样
    userName 报纸1 报纸2 报纸3
    u1 20 20 20
    u2 10 10 10
    u3 30 30 30但修改数量时必须每个报纸数量都要有一个id才能修改
    如果像上面的查询结果集,是没有id的,如果有也只能是一条记录一个
    但上面一条记录有多个报纸,怎么办
      

  14.   

    那么多人说话了 估计你都看不到我了
    定义一个 实体类 Newspage();里面几个属性 就是你要显示的 这几个。
    然后在后天把这些实体对象利用一个循环装近list中Arraylist
    前天在循环拿出来。怎么循环都行《%%》 或者JSTL 都行。
      

  15.   

    用sql语句   行转列   就行了。LZ找一下。。
      

  16.   

    我现在的SQL语句就是行转列的。结果集就是这样:
    userName 报纸1 报纸2 报纸3
    u1 20 20 20
    u2 10 10 10
    u3 30 30 30但我要修改每个报纸的数量怎么办,行转列后没办法取得每个数量表的id号
      

  17.   

    你完全可以查成这样的
    userName 报纸1 id1 报纸2 id2 报纸3 id3
      

  18.   

    Bean1:
    id userName pagerName amount
    Bean2
    用户 报纸1 报纸2SQL查出list<Bean1>
    java逻辑算出List<Bean2>
    JSP页面显示List<Bean2>
    当需要修改数量时,获取行头(用户ID),列头(报纸Guid),根据这两个条件查找记录。
    找出所有的给他增删,需要showModalDialog()
      

  19.   

    如果不需要修改只需要展示的话sql group by
      

  20.   

    报纸的数量多的话用String[] 和double[] 来保存报纸和数量,数量没的给0保持对应关系
      

  21.   

    用实例数组,Map,Set都可以啊