StoredProcedureResult インターフェースでの getXxx() メソッドの戻りの型

以下の表には、StoredProcedureResult インターフェースにおけるそれぞれの queryXxx() メソッドの戻りの型が示されています。
表 1. 戻りの型に関する表のキー
省略形 意味
I Iterator
L List
M Map
O Object
RS ResultSet
S String
T 汎用クラス。プリミティブ Java タイプまたは Bean にすることができます。
表 2. StoredProcedureResult インターフェースにおけるそれぞれの queryXxx() メソッドの戻りの型.
   
getXxx() メソッド RS O[] L<M<S,O>> L<T> M<S,O>[] <T> <T>[] I<M<S,O>> I<T>
getOutputParms()   X              
getArray()         X        
returnClass を伴う getArray()             X    
RowHandler を伴う getArray()             X    
getList()     X            
returnClass を伴う getList()       X          
RowHandler を伴う getList()       X          
getIterator()               X  
returnClass を伴う getIterator()                 X
RowHandler を伴う getIterator()                 X
getResults() X                
ResultHandler を伴う getQuery()           X      

<T> オブジェクトの戻りに関する制約事項

StoredProcedureResult インターフェースのメソッドを使用する場合、int.class など <primitive Java type>.class クラスのいずれかである汎用 <T> クラスを指定しないでください。

SQL NULL 値に関する情報は、SQL から照会された情報がプリミティブ Java タイプに格納されると失われます。 さらに、Java は、<primitive Java type>.class の汎用 <T> クラスを指定する汎用メソッドが、そのプリミティブ Java タイプに適したラッパー・クラスのインスタンスを戻すように要求します。

例えば、Java は以下のようなメソッドの起動を許可しません。
int tCount = storedProcedureResult.queryArray(int.class);
これは、queryArray() メソッドの定義が以下のようになっているためです。
<T> T[] storedProcedureResult.queryArray(Class<T> returnClass);
tCount の宣言されたクラスは Integer[] でなければなりません。
Integer[] tCount = storedProcedureResult.queryArray(Integer.class);

フィードバック