所以我有一个在 2PC 上启动的应用程序。每个实例在服务器模式下启动一个 HSQLDB。
我试图获得不同产品的销售。
所以我查询本地数据库并用产品名称和销售数量填充一个数组列表。
然后我在另一台 PC 上的另一个数据库上执行相同的查询。
对于 1 个产品,我有两行(每行对应一个数据库)。在这里,结果是错误的,但执行时间还可以。
为了解决这个问题,我做了以下事情:
ResultSet rs2 = state2.executeQuery(produitsQuery);
while (rs2.next()) {
for (int i = 0; i < produits.size(); i++) {
obj = ((Object[]) produits.get(i));
idpdt = (Integer) obj[1];
if (idpdt == rs2.getInt(1)) {
nb = (Integer) obj[3];
valo = (Double) obj[4];
nb += rs2.getDouble(4);
valo += rs2.getDouble(5);
produits.set(i, new Object[]{
rs2.getString("famille"),
rs2.getInt("id_pdt"),
rs2.getString("nom_pdt"),
nb,
valo,
s2.getString("sous_famille")});
k = 1;
}
}
if (k == 0)
produits.add(new Object[]{
rs2.getString("famille"),
rs2.getInt("id_pdt"),
rs2.getString("nom_pdt"),
rs2.getInt("nb"),
rs2.getDouble("valo"),
rs2.getString("sous_famille")});
}
结果是完美的,但执行时间非常慢,这是一个问题。我认为这是因为我在结果集的每一行循环了整个数组列表。
我可以使用哪些其他解决方案来缩短执行时间?