Databases Reference
In-Depth Information
der Ausführung einen Wert zuweisen. Dem Datentyp entsprechend, werden
die konkreten Werte mit den geeigneten setXXX -Methoden, wie setInt oder
setString , gesetzt. Dabei
entspricht der erste Parameter der laufenden Nummer des Platzhalters - die
Zählung fängt wieder bei 1 an.
enthält der zweite Parameter den Wert, der dem Platzhalter zugeordnet wer-
den soll.
Wenn es richtig gemacht wird, kann uns der Einsatz von prepared Statements eine
Leistungsverbesserung im Bereich 10-15% bringen. Wichtig ist, dass die Vorberei-
tung nur ein einziges Mal durchgeführt wird. Mit der folgenden Vorgehensweise
würden wir uns einen Bärendienst erweisen, weil die beim prepareStatement
anfallenden Verarbeitungsschritte bei jedem Aufruf der Methode insertSeries
ausgeführt werden.
static boolean insertSeries(int id, String name, int first){
String insert = "insert into reihen values(?, ?, ?)";
PreparedStatement prepared = con.prepareStatement(insert);
prepared.setInt(1, id);
prepared.setString(2, name);
prepared.setInt(3, first);
boolean result = 1 == prepared.executeUpdate();
prepared.close();
return result;
}
Besser wäre es, das Objekt vom Typ PreparedStatement wie folgt als privates
Attribut vorzuhalten und im Konstruktor zu initialisieren:
class PrepareDemo {
private PreparedStatement prepared;
private Connection con;
public PrepareDemo(){
con = DriverManager.getConnection("jdbc:h2:demo");
String insert = "insert into reihen values(?, ?, ?)";
prepared = con.prepareStatement(insert);
}
public boolean insertSeries(int id, String series, int volumes){
prepared.setInt(1, id);
prepared.setString(2, series);
prepared.setInt(3, volumes);
return 1 == prepared.executeUpdate();
}
}
 
Search WWH ::




Custom Search