Javaのプログラムでは、INOUT引数に対して引数の型を要素とする配列が対応します。(メソッドは配列を引数としてとらなければなりません。) この対応関係はSQL標準の推奨に沿ったものです。
CallableStatement call = conn.prepareCall(
    "{CALL doubleMyInt(?)}");
// 値を代入する前に引数を登録する事が、
// inout引数では良いやり方です。
call.registerOutParameter(1, Types.INTEGER);
call.setInt(1,10);
call.execute();
int retval = call.getInt(1);
public static void doubleMyInt(int[] i) {
    i[0] *=2;
    /* Derbyは配列の最初の要素を返します。*/
}
 | JDBCの型 | メソッドの引数の配列型 | 値と返り値の型 | 
|---|---|---|
| BIGINT | long[] | long | 
| BINARY | byte[][] | byte[] | 
| BIT | boolean[] | boolean | 
| DATE | java.sql.Date[] | java.sql.Date | 
| DOUBLE | double[] | double | 
| FLOAT | double[] | double | 
| INTEGER | int[] | int | 
| LONGVARBINARY | byte[][] | byte[] | 
| REAL | float[] | float | 
| SMALLINT | short[] | short | 
| TIME | java.sql.Time[] | java.sql.Time | 
| TIMESTAMP | java.sql.Timestamp[] | java.sql.Timestamp | 
| VARBINARY | byte[][] | byte[] | 
| OTHER | yourType[] | yourType | 
| JAVA_OBJECT (Java2/JDBC 2.0の環境でのみ有効) | yourType[] | yourType | 
呼び出し前に出力の引数を登録してください。INOUTの引数では、値を代入する前に出力の引数を登録するのが良いやり方です。