JDBCを使用したJavaストアド・プロシージャのコール
JDBCからコールするJavaストアド・プロシージャは、CallableStatementオブジェクトにカプセル化されている必要があります。
JDBCを使用してJavaストアド・プロシージャをコールするには、次のようにします。
- コール可能文オブジェクトを作成します。
- コール可能文オブジェクトを宣言します。次に例を示します。
private CallableStatement checkIn;
- コール可能文オブジェクトを、ストアド・プロシージャのSQLのCALL文に接続するためのprepareCallをコールして初期化します。次に例を示します。
checkIn = connection.prepareCall(quot;{call NPL.CHECKIN(?, ?, ?)}");
ストアド・プロシージャのパラメータ数は、SQLコールの数値プレースホルダで表されることに注意してください。
- コール可能文オブジェクトの出力パラメータを登録します。出力パラメータを位置により識別し、その型を宣言して、それぞれのパラメータに対してregisterOutParameterをコールします。たとえば、2番目のパラメータがSQLのINTEGER(Javaのintに割当て)で、3番目のパラメータがSQLのVARCHAR(JavaのStringに割当て)の場合、次のようになります。
newCustomer.registerOutParameter(2, Types.INTEGER);
newCustomer.registerOutParameter(3, Types.VARCHAR);
- コール可能文オブジェクトを実行します。
- 入力パラメータを位置により識別し、値を割り当てて、setメソッドをコールすることにより、コール可能文オブジェクトの入力パラメータを指定します。たとえば、最初のパラメータがintの入力パラメータの場合、次のようになります。
checkIn.setInt(1, bookID);
- コール可能文オブジェクトを実行します。次に例を示します。
checkIn.execute();
- コール可能文オブジェクトの出力パラメータを抽出します。位置により出力パラメータを識別し、それぞれのパラメータに対してgetメソッドをコールします。getメソッドにより、対応するJava型の値が返されます。次に例を示します。
int daysLate = checkIn.getInt(2);
String title = checkIn.getString(3);
関連項目
Javaストアド・プロシージャのコール