1对多关系如何写JDBC

我的后台有两张表是一对多的 也就是一个是汇总的一个是明细的。
我以前用hibernate做的在java类里写两个bean一个里面通过集合引用另外一个,
但现在用JDBC不知道怎么做。比如在做查询的时候
[b]问题补充:[/b]
[quote]一个SQL,直接关联两张表; 不就可以了?[/quote]
不行啊这样会有重复的部分啊?
class:
public class A{
String ID
String name
String age
String sex
List B
}

public class B{
String telphone;
String area;
String Date;
}
例如:
关联出来的数据是
ID 姓名 年龄 性别 电话 地址 时间
A1 李四 23 男 67676767 北京西路78号 20080808
A1 李四 23 男 70987655 天津南路8号 20090115

前面的汇总的那部分不是重复了吗。

[b]问题补充:[/b]
由于服务器是weblgic8.0所有jdk只能用1.4的 不知道1.4支持不支持rowset
[b]问题补充:[/b]
[quote]然后根据,RowSet组合对象,不就可以了?[/quote]

能不能给个小demo 我没用过这个东西,
才疏学浅 指点一二。
[b]问题补充:[/b]
好像1.4 不支持啊
CachedRowSet crs = new CachedRowSetImpl();
我用这个它报错。
[b]问题补充:[/b]
[quote]Java代码
Connection myConn;

//获取连接

Statement mystmt=myConn.createStatement();

//建立结果集

String sql = "select t1.id t2.telephone,t2.area from tableA t1, tableB t2 where t1.id=t2.id";

ResultSet myrs=mystmt.executeQuery(sql);

A a = new A();

List bList = new ArrayList();

while(myrs.next()){

B b = new B();

a.setId(myrs.getString("id"));

b.setTel(myrs.getString("telephone"));

b.setArea(myrs.getString("area"));

bList.add(b);

}

Connection myConn;
//获取连接
Statement mystmt=myConn.createStatement();
//建立结果集
String sql = "select t1.id t2.telephone,t2.area from tableA t1, tableB t2 where t1.id=t2.id";
ResultSet myrs=mystmt.executeQuery(sql);

A a = new A();
List bList = new ArrayList();
while(myrs.next()){ 
 B b = new B();
 a.setId(myrs.getString("id"));
 b.setTel(myrs.getString("telephone"));
 b.setArea(myrs.getString("area"));
 bList.add(b);
}

Google上也很多;上面的你参考下;[/quote]

这样写行吗!这不正是我想要解决的问题吗
[b]问题补充:[/b]
[quote] ID 姓名 年龄 性别 电话 地址 时间
A1 李四 23 男 67676767 北京西路78号 20080808
A1 李四 23 男 70987655 天津南路8号 20090115
A2 张三 28 女 9878762 天津南路80号 20080909
A2 张三 28 女 9878762 上海南路80号 20080920
[/quote]

如果数据是这样呢?
[b]问题补充:[/b]
[quote]Map aMap = new HashMap();

List bList = new ArrayList();

while(myrs.next()){

B b = new B();

String userid = myrs.getString("id");

if(aMap.get(userid)==null){

A a = new A();

a.setId(myrs.getString("id"));

aMap.put(userid,a);

}

A a = (A)aMap.get(userid);

b.setTel(myrs.getString("telephone"));

b.setArea(myrs.getString("area"));

a.bList.add(b);

aMap.put(userid,a);

} [/quote]

hibernate也是通过这种方式来做的吗。

Hibernate做法做了封装. 最后的结果已经是对象了.

public class Parent{
public String name;
public List children;

}

一个SQL,直接关联两张表; 不就可以了?

[quote] ID 姓名 年龄 性别 电话 地址 时间
A1 李四 23 男 67676767 北京西路78号 20080808
A1 李四 23 男 70987655 天津南路8号 20090115 [/quote]

然后根据,RowSet组合对象,不就可以了?

当然支持了啊. 呵呵.

[quote]由于服务器是weblgic8.0所有jdk只能用1.4的 不知道1.4支持不支持rowset [/quote]

当然支持.

[code="java"] Connection myConn;
//获取连接
Statement mystmt=myConn.createStatement();
//建立结果集
String sql = "select t1.id t2.telephone,t2.area from tableA t1, tableB t2 where t1.id=t2.id";
ResultSet myrs=mystmt.executeQuery(sql);

A a = new A();
List bList = new ArrayList();
while(myrs.next()){ 
 B b = new B();
 a.setId(myrs.getString("id"));
 b.setTel(myrs.getString("telephone"));
 b.setArea(myrs.getString("area"));
 bList.add(b);
}
[/code]

Google上也很多;上面的你参考下;

[code="java"] Map aMap = new HashMap();
List bList = new ArrayList();
while(myrs.next()){
B b = new B();
String userid = myrs.getString("id");
if(aMap.get(userid)==null){
A a = new A();
a.setId(myrs.getString("id"));
aMap.put(userid,a);
}
A a = (A)aMap.get(userid);

 b.setTel(myrs.getString("telephone")); 
 b.setArea(myrs.getString("area")); 
 a.bList.add(b); 
 aMap.put(userid,a);
} [/code]

自己组装