gpt4 book ai didi

java - 从结果集中填充 bean 对象

转载 作者:行者123 更新时间:2023-11-30 05:13:44 26 4
gpt4 key购买 nike

我面临着从结果集中填充 bean 对象的问题。

描述:Resultset 包含存储过程的结果,该存储过程是 3 个表 BBOBOV 的连接。

我有 3 个 POJO 对应于表。表之间的关系是:B可以有0个或多个BOBO可以有0个或多个BOV 的。因此,在结果集中我总共有 162 条记录,其中包含 B 的重复项。

例如:

B  BO   BOV
1 1 1
1 1 2
1 2 1
2 1 1

等等。

实际上有 10 个不同的 B。所以我只想要结果集中的 10 个 B,而不是 162 条记录。另外,II 应该能够获得相应的 BOBOV,例如 B=1 BO 的所有值和 BOV 的。

我该怎么做?这是纯java逻辑,不能改变存储过程的任何内容。只需处理结果集即可。

最佳答案

这里有一个正在运行的结果集 map ,这是一个可能的伪代码

[仅伪代码...不保证编译]

Map mapofBs = new HashMap();
while(rs.hashNext()) {
rs.next();
String bId = rs.getString("columnname for id of b");
B objectB = mapofBs.get(bId);
if(objectB == null) {
objectB = new B();
//read relevant columns from result set and put into objectB
mapOfBs.put(bId, objectB)
}
//now onto the boId
String boId = rs.getString("columnname for id of BO");
BO objectBO = objectB.getBOForId(boId);
if(objectBO == null) {
objectBO = new BO();
//read relevat columns from result set for objectBO
objectB.addObjectBO(objectBO);
}
String bovID = s.getString("columnname for id of BOV");
BOV objectBOV = objectBO.getBOVForId(bovId);
if(objectBOV == null) {
objectBOV = new BOV();
//read relevat columns from result set for objectBOV
objectBO.addObjectBOV(objectBOV);
}
}
//mapOfBs.keySet() gives you a Set<B> which you are interested in

关于java - 从结果集中填充 bean 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2391625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com