@@ -4,6 +4,8 @@ import fi.lpam.ruokamanageri.gui.virheDialogit.SiirtoVirhe;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
@SuppressWarnings("DuplicatedCode")
|
||||
public class Asiakas implements TietokantaOlio {
|
||||
private int id = -1;
|
||||
@@ -117,18 +119,15 @@ public class Asiakas implements TietokantaOlio {
|
||||
sbIDt.append(", ").append(IDt[i]);
|
||||
}
|
||||
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();
|
||||
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 (Asiakas asiakas : asiakkaat) {
|
||||
if (asiakas.getId() == id) {
|
||||
järjestetyt.add(asiakas);
|
||||
}
|
||||
}
|
||||
järjestetyt.add(asiakkaat.get(id));
|
||||
}
|
||||
return järjestetyt;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user