JavaはCallableStatements
を提供します そのような目的のために。
CallableStatement cstmt = conn.prepareCall("{? = CALL total_cancellations()}");
cstmt.registerOutParameter(1, Types.INTEGER);
cstmt.setInt(2, acctNo);
cstmt.executeUpdate();
int cancel= cstmt.getInt(1);
System.out.print("Cancellation is "+cancel);
pl/sqlの場合と同じように出力されます。ドキュメントに従ってConnection#prepareCall()
、
データベースのストアドプロシージャを呼び出すためのCallableStatementオブジェクトを作成します。 CallableStatementオブジェクトは、そのINおよびOUTパラメータを設定するためのメソッドと、ストアドプロシージャへの呼び出しを実行するためのメソッドを提供します。
関数のパラメータを渡すこともできます。たとえば、
conn.prepareCall("{? = CALL total_cancellations(?)}");
cstmt.setInt(2, value);
値を入力パラメータとして関数に渡します。
これがお役に立てば幸いです!