@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user