Signed-off-by: laurimaaninka <lauri.maaninka@gmail.com>
This commit is contained in:
2026-04-21 21:10:28 +03:00
parent 3846f5c51e
commit b8403211c5
@@ -4,6 +4,8 @@ import fi.lpam.ruokamanageri.gui.virheDialogit.SiirtoVirhe;
import java.sql.*; import java.sql.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
@SuppressWarnings("DuplicatedCode") @SuppressWarnings("DuplicatedCode")
public class Asiakas implements TietokantaOlio { public class Asiakas implements TietokantaOlio {
private int id = -1; private int id = -1;
@@ -117,18 +119,15 @@ public class Asiakas implements TietokantaOlio {
sbIDt.append(", ").append(IDt[i]); sbIDt.append(", ").append(IDt[i]);
} }
try (Connection tietokanta = Tietokanta.haeYhteys()) { try (Connection tietokanta = Tietokanta.haeYhteys()) {
String sql = "select * from asiakkaat where id in (" + sbIDt + ") order by instr('" + sbIDt + "', id)"; String sql = "select * from asiakkaat where id in (" + sbIDt + ")";
Statement stmt = tietokanta.createStatement(); Statement stmt = tietokanta.createStatement();
ResultSet rs = stmt.executeQuery(sql); ResultSet rs = stmt.executeQuery(sql);
ArrayList<Asiakas> asiakkaat = parsiResultSet(rs);
ArrayList<Asiakas> järjestetyt = new ArrayList<Asiakas>(); HashMap<Integer, Asiakas> asiakkaat = new HashMap<>(IDt.length);
parsiResultSet(rs).forEach(asiakas -> asiakkaat.put(asiakas.getId(), asiakas));
ArrayList<Asiakas> järjestetyt = new ArrayList<>(asiakkaat.size());
for (int id : IDt) { for (int id : IDt) {
for (Asiakas asiakas : asiakkaat) { järjestetyt.add(asiakkaat.get(id));
if (asiakas.getId() == id) {
järjestetyt.add(asiakas);
}
}
} }
return järjestetyt; return järjestetyt;
} }