系部表,专业表,班级表需求:  3个表联合查询出 班级信息以及相对应的系部名称,专业名称。 // 因班级表中只有系部编号,专业编号。sql:      select * from (department inner join zy on department.departmentId=zy.departmentId) inner join classes  
      on zy.departmentId=classes.departmentIdcode:(简写的)      public List MultipleQuery() {
          List list = new ArrayList();          //把查询出来的记录数作为多个对象存入集合中.
          while(rs.next()) {                 .....中间的不知如何写  
          }
          return list;
      }方案:  1.是否需要重新构建一个类,来对应查询出的field?
       2.在原来的班级实体类中加上:系部名称和专业名称属性 .
         修改过的班级实体类:
                             private String departmentName;   //系部名称
                             private String zyName;           //专业名称
                             //班级原有的属性
                             ..................
       3. 重新构建一个类,成员变量是:系部实体类对象,专业实体类对象,班级实体类对象
          重新构建的类:
                             private Department department;  //系部实体类对象
                             private Zy  zy;                 //专业实体类对象
                             private Classes classes;        //班级实体类对象大家有什么好的方法吗?一般联合查询后是怎么处理然后返回一个集合的.

解决方案 »

  1.   

    你上面说的几种方案都可以。说实话,在处理这类联合查询时也没什么太好的办法,我认为还有一种方案可选,即List里面再放List集合,大概如下:
    List<List> list=new ArrayList<List>();
    List<Department> list1=new ArrayList<Department>();
    List<Zy> list2=new ArrayList<Zy>();
    List<Classes> list3=new ArrayList<Classes>();list.add(list1);
    list.add(list2);
    list.add(list3);这样对应的list1,list2与list3存放对应的三个类的信息也可以。
      

  2.   

    monkeyking1987可以这样写吗?
    public List MultipleQuery() { 
              List<List> list = new ArrayList<List>(); 
              List<String> subList = null;          //把查询出来的记录数作为多个对象存入集合中. 
              while(rs.next()) { 
                  subList = new ArrayList<String>();              subList.add(rs.getString("field1Name"));
                  subList.add(rs.getString("field2Name")); 
                  subList.add(rs.getString("field3Name"));
                  .......................................              list.add(subList);
                    
              } 
              return list; 
          }