JDBCを使用したJavaストアド・プロシージャのコール

JDBCからコールするJavaストアド・プロシージャは、CallableStatementオブジェクトにカプセル化されている必要があります。

JDBCを使用してJavaストアド・プロシージャをコールするには、次のようにします。

  1. コール可能文オブジェクトを作成します。
  2.  

    1. コール可能文オブジェクトを宣言します。たとえば、次のようになります。
      
      private CallableStatement checkIn;          
    2. コール可能文オブジェクトを、ストアド・プロシージャのSQLのCALL文に接続するためのprepareCallをコールして初期化します。たとえば、次のようになります。
      
      checkIn = connection.prepareCall(quot;{call NPL.CHECKIN(?, ?, ?)}");           

      ストアド・プロシージャのパラメータ数は、SQLコールの数値プレースホルダで表されることに注意してください。

    3. コール可能文オブジェクトの出力パラメータを登録します。出力パラメータを位置により識別し、その型を宣言するため、それぞれのパラメータに対してregisterOutParameterをコールします。たとえば、2番目のパラメータがSQL INTEGER(Java intにマップ)で、3番目のパラメータがSQL VARCHAR(Java Stringにマップ)の場合、次のようになります。
      
      newCustomer.registerOutParameter(2, Types.INTEGER);
      
      newCustomer.registerOutParameter(3, Types.VARCHAR);           
  3. コール可能文オブジェクトを実行します。

     

    1. 入力パラメータを位置により識別し、値を割り当てるために、setメソッドをコールすることにより、コール可能文オブジェクトの入力パラメータを指定します。たとえば、最初のパラメータがintの入力パラメータの場合、次のようになります。
    
    checkIn.setInt(1, bookID);        
  4. コール可能文オブジェクトを実行します。たとえば、次のようになります。
    
    checkIn.execute();         
  5. コール可能文オブジェクトの出力パラメータを抽出します。位置により出力パラメータを識別し、それぞれのパラメータに対してgetメソッドをコールします。getメソッドにより、対応するJava型の値が返されます。たとえば、次のようになります。

int daysLate = checkIn.getInt(2); 
String title = checkIn.getString(3);

Javaストアド・プロシージャのコール

 

Copyright © 1997, 2004, Oracle. All rights reserved.