limoneneis
Cadet 4th Year
- Registriert
- Okt. 2009
- Beiträge
- 72
Hallo ich habe eine Methode geschrieben, die Daten aus einer Datenbank in Arrays im Speicher vom Java-Programm schreibt. Wenn ich diese Methode nicht ausführe braucht mein Programm nur 4 Sekunden. Mit der Methode 8 Sekunden. Ich wollte mal fragen, ob man erkennen kann woher die Performanceeinbuße kommt?
Habt ihr Tipps um das Programm zu beschleunigen?
Habt ihr Tipps um das Programm zu beschleunigen?
Code:
final public void initNachfrageAnStationen() {
try {
ResultSet r;
for (int i = 0; i <= stationen.size() - 1; i++) { //ArrayListe: Größe=60
int z = 0;
String s = stunde < 10 ? "0" + stunde : "" + stunde;
String t = stationen.get(i).getId() + "";
prepStmtNachfrage.setString(1, s); //Dahinter steckt eine sehr
prepStmtNachfrage.setString(2, t); //einfache Abfrage
prepStmtNachfrage.setString(3, t);
ResultSet rsN = prepStmtNachfrage.executeQuery(); //ausführen
double[] entl = new double[stationen.size()]; //Größe des Arrays = 60
double[] rueckg = new double[stationen.size()]; // size = 60
while (rsN.next()) {
String ent = rsN.getString("entleihstation");
String rue = rsN.getString("rueckgabestation");
double fahrt = rsN.getDouble("fahrten");
if (t.equals(ent)) {
r = v.output("SELECT index FROM stationen" //Methode output liefert
+ " WHERE id = '" //Resultset der Query
+ rue + "'");
while (r.next()) {
entl[r.getInt("index")] = fahrt; //Fahrt gespeichert
//an der richtigen Stelle im Array
if(ent.equals(rue)){
rueckg[r.getInt("index")] = fahrt;
}
}
} else if (t.equals(rue)) {
r = v.output("SELECT index FROM stationen"
+ " WHERE id = '"
+ ent + "'");
while (r.next()) {
rueckg[r.getInt("index")] = fahrt;
}
}
}
stationen.get(i).setEntleihungen(entl);
stationen.get(i).setRueckgaben(rueckg);
}
} catch (SQLException ex) {
System.err.println(ex.getMessage());
}
}