PreparedStatement
, welches wiederum von Statement
erbt
DatabaseMetaData.supportsStoredProcedures()
und getProcedures()
{call procedure_name[(?, ?, . . .)]} // "[", "]" kennzeichnen {? = call procedure_name[(?, ?, . . .)]} // optionale Bestandteile |
CallableStatement callStatement = connection.prepareCall("{call getTestData(?, ?)}"); // ob die "?" IN-, OUT- oder INOUT-Parameter sind, // haengt von der Stored Procedure "getTestData" ab |
setXXX()
gesetzt
registerOutParameter()
registriert werden,
nach der Ausführung des CallableStatements
können die Werte via
getXXX()
erhalten werden (für maximale Kompatibilität erst nach
der Auswertung eventueller ResultSets
oder Update Counts)
Object
ist
java.sql.Types.OTHER
NULL
: getXXX()
liefert null
,
0
bzw. false
-> mit wasNull()
überprüfen
CallableStatement callStatement = connection.prepareCall("{call getTestData(?, ?)}"); // erster Parameter ist ein INOUT-Parameter callStatement.setByte(1, 47); callStatement.registerOutParameter(1, java.sql.Types.TINYINT); // zweiter Parameter ist ein OUT-Parameter callStatement.registerOutParameter(2, java.sql.Types.DECIMAL, 3); callStatement.executeQuery(); byte x = callStatement.getByte(1); BigDecimal n = callStatement.getBigDecimal(2, 3); // java.math.BigDecimal mit 3 Nachkommastellen |