JDBC 4.2

Java SE 8の一部であるJDBC 4.2には、次の機能が導入されています。

REF_CURSORサポートの追加

いくつかのデータベースでREF_CURSORデータ型がサポートされています。ストアド・プロシージャからREF_CURSORを返すには、CallableStatement.registerOutParameterメソッドを使用し、返されるデータ型としてTypes.REF_CURSORを指定します。REF_CURSORを表すResultSetインスタンスを取得するには、CallablStatement.getObjectメソッドを呼び出し、返されるオブジェクトの変換先のデータ型としてResultSetを指定します。返される結果セットは、順方向で読取り専用の結果セットです。

registerOutParameterメソッドを呼び出し、返されるデータ型としてTypes.REF_CURSORを指定しても、このデータ型がJDBCドライバでサポートされていない場合は、SQLFeatureNotSupportedExceptionがスローされます。

次の例では、CallableStatementクラスを持つREF_CURSORからResultSetインスタンスを取得します。

CallableStatement cstmt = conn.prepareCall("{callmySproc(?)}");
cstmt.registerOutParameter(1, Types.REF_CURSOR);
cstmt.executeQuery();
ResultSet rs = cstmt.getObject(1, ResultSet.class);
while(rs.next()){
System.out.println("Name="+ rs.getString(1));
}

JDBCドライバでREF_CURSORがサポートされているかどうかを確認するには、DatabaseMetaData.supportsRefCursorsメソッドを呼び出します。

java.sql.DriverActionインタフェースの追加

このインタフェースは、DriverManagerクラスによって通知される必要がある場合に、java.sql.Driverを実装するすべてのクラスが実装する必要があります。JDBCドライバの静的初期化ブロックは、JDBCドライバが登録解除されたときに、どのDriverAction実装を呼び出すのかをDriverManagerクラスに通知するために、DriverManager.registerDriver(java.sql.Driver, java.sql.DriverAction)メソッドを呼び出す必要があります。SecurityManagerが有効になっている場合は、DriverManager.deregisterDriverメソッドにアクセス権が必要です。

java.sql.SQLTypeインタフェースの追加

このインタフェースは、JDBCタイプと呼ばれる汎用のSQLタイプまたはベンダー固有のデータ型を識別するオブジェクトを作成する際に使用されます。

java.sql.JDBCType列挙の追加

この列挙は、JDBCタイプと呼ばれる汎用のSQLタイプを識別します。JDBCTypeは、Types.javaで定義された定数の代わりに使用します。

多数の更新数のサポートの追加

JDBCメソッドは、更新数に対応するint値のみを返していました。データベースが拡大し続けると、これによって問題が発生していました。そのため、更新数に対応するlong値を返すメソッドがStatementクラスに追加されました。これらのメソッドは、返された行数が定数Integer.MAX_VALUEを超過したときに使用されるべきです。

既存のインタフェースの変更

次のインタフェース用にメソッドが追加または明確化されました。次のリストには、拡張されたインタフェースを示します。

RowSet 1.2: JDBC RowSetの拡張機能のリスト。

次のリストには、RowSet1.2用に拡張または明確化されたインタフェースおよびクラスを示します。


Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.