だから私は2PCで起動するアプリケーションを持っています。各インスタンスは、サーバー モードで HSQLDB を起動します。
さまざまな商品の売上を上げようとしています。
そこで、ローカル データベースにクエリを実行し、arraylist に製品名と販売数を入力します。
次に、別の PC 上の別のデータベースに対して同じクエリを実行します。
1 つの製品に対して、2 つの行があります (それぞれが 1 つのデータベースに対応しています)。ここでは、結果は false ですが、実行時間は問題ありません。
それを管理するために、次のことを行いました。
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")});
}
結果は完璧ですが、実行時間が非常に遅く、それが問題です。結果セットのすべての行で配列リスト全体をループしているためだと思います。
実行時間を短縮するために使用できる他のソリューションは何ですか?