第一种:新建实体类的处理方式:
两表或多表联查的结果,放入到一个实体类中。这个实体类必须包含所有查询结果的内容。
缺点:建类麻烦,在多次表联查的情况下,使用很多实体类让代码显得繁琐
优点:存取值时比较方便
第二种:分别将查询的结果存放到各个实体类中,然后为每一个实体类新建集合放入(因为集合只能有一种泛型)。
因为函数的返回值只能是一个,所以我们需要将多个集合再次存放到一个集合中返回。
缺点:存取值很麻烦,至少涉及到三个集合的遍历。
优点:不需要新建实体类
例子:查询结果
Resultset rs=ps.executeQuery();
List<User> ulist=new ArrayList<User>();
List<Manager> mlist=new ArrayList<Manager>();
List<List> list=new ArrayList<List>();
while(rs.next()){
User u=new User();
u.setUname(rs.getString("uname"));
u.setUpass(rs.getString("upass"));
ulist.add(u);
Manager m=new Manager();
m.setMname(rs.getString("mname"));
m.setMpaww=(rs.getString("mpass"));
mlist.add(m);
}
list.add(ulist);
list.add(mlist);
req.setAttribute("list",list);
req.getRequestDispatcher("xxx.jsp").forward(req,resp);
前端:
List<List> list=(List<List>)req.getAttribute("list");
List<Managenr> mlist=list.get(1);
List<User> ulist=list.get(0);
for(int i=0;i<mlist.size();i++){
mlist.get(i).getMname();
ulist.get(i).getUname();
}