从多个表中查询数据的时候,在while循环中,如何设置值呢?
sql="select a.tname,b.tname from A a,B b";
第一种方法:
List<Object> list=new ArrayList<Object>();
while(rs.next()){
A aa=new A();
aa.setString(rs.getString(1));
B bb=new B();
bb.setString(rs.getString(2));
list.add(aa);
list.add(bb);
}
但是取值的时候比较麻烦,需要判断是哪一个实体类。
if(TmaterialplanDetail.class.isInstance(list.get(i))){
System.out.println("TmaterialplanDetail");
}
第二种方法:
如果从多张表中查询数据的字段很多的话,可以把这些字段封装到一个实体类C中。
while(rs.next()){
C cc=new C();
cc.setString(rs.getString(1));
cc.setString(rs.getString(2));
list.add(cc);
}
第三种方法:
while(rs.next()){
Map map = new HashMap();
map.put("tname1", rs.getLong(1));
map.put("tname2", rs.getString(2));
list.add(map);
}
sql="select a.tname,b.tname from A a,B b";
第一种方法:
List<Object> list=new ArrayList<Object>();
while(rs.next()){
A aa=new A();
aa.setString(rs.getString(1));
B bb=new B();
bb.setString(rs.getString(2));
list.add(aa);
list.add(bb);
}
但是取值的时候比较麻烦,需要判断是哪一个实体类。
if(TmaterialplanDetail.class.isInstance(list.get(i))){
System.out.println("TmaterialplanDetail");
}
第二种方法:
如果从多张表中查询数据的字段很多的话,可以把这些字段封装到一个实体类C中。
while(rs.next()){
C cc=new C();
cc.setString(rs.getString(1));
cc.setString(rs.getString(2));
list.add(cc);
}
第三种方法:
while(rs.next()){
Map map = new HashMap();
map.put("tname1", rs.getLong(1));
map.put("tname2", rs.getString(2));
list.add(map);
}