Statement
Interface
execute()
,
executeQuery()
und executeUpdate()
müssen ohne
SQL-Statement als Parameter benutzt werden
Statement
(vor allem bei
mehrmaliger Nutzung)
setXXX()
gesetzt werden
(XXX
muss auf den entsprechenden SQL-Typ gemappt werden können!)
setObject()
benutzt wird, kann als dritter Parameter der
gewüschte JDBC-Typ angegeben werden (z.B. wenn Typ zur Compilezeit unbekannt)
setNull()
kann JDBC NULL
gesetzt werden (JDBC-Typ
muss trotzdem angegeben werden), NULL
wird auch gesendet, wenn Java
null
bei setXXX()
übergeben wird
clearParameters()
aufgerufen wird
commit()
offen lässt, kann dasselbe
Statement mehrmals ausgeführt werden -> Performancegewinn
PreparedStatement prepStatement = connection.prepareStatement("UPDATE Tabelle SET m = ? WHERE x = ?"); prepStatement.setString(1, "47"); // erster Parameter (m) auf "47" gesetzt for (int i = 0; i < 42; i++) { prepStatement.setInt(2, i); // zweiter Parameter (x) auf i gesetzt int rowCount = prepStatement.executeUpdate(); } |
setBinaryStream()
für reinen Bytestrom
setAsciiStream()
für ASCII-Zeichenstrom (1 Byte)
setUnicodeStream()
für Unicode-Zeichenstrom (2 Byte)
File file = new File("/tmp/data"); int fileLength = file.length(); InputStream fin = new FileInputStream(file); PreparedStatement prepStatement = connection.prepareStatement("UPDATE Tabelle SET stuff = ? WHERE index = 4"); prepStatement.setBinaryStream(1, fin, fileLength); prepStatement.executeUpdate(); |