8.6.45 getObject(int columnIndex,Class<T> type)
- 〈この項の構成〉
(1) 機能
ResultSetオブジェクトの現在行の列の値を取得し,指定されたクラスのJavaデータ型に変換します。値を取得する列は,引数で指定します。
(2) 形式
public synchronized <T> T getObject(int columnIndex,Class<T> type) throws SQLException
(3) 引数
- int columnIndex:
-
列番号を指定します。
- Class<T> type:
-
変換後のJavaデータ型を表すクラスを指定します。columnIndexで指定した列の値が,指定されたクラスのJavaデータ型に変換されます。
変換の組み合わせを次の表に示します。次の表に示す組み合わせ以外を指定した場合は,エラーになります。
表8‒37 HADBのデータ型とJavaデータ型の組み合わせ HADBのデータ型
Javaデータ型(<T>の指定値)
CHAR
String
VARCHAR
SMALLINT
Integer
INTEGER
Long
DECIMAL
java.math.BigDecimal
NUMERIC
DOUBLE PRECISION
Double
FLOAT
DATE
java.sql.Date
TIME
java.sql.Time
TIMESTAMP
java.sql.Timestamp
BINARY
byte[]
VARBINARY
ROW
BOOLEAN※
Boolean
- 注※
-
DatabaseMetadataから生成されたResultsetオブジェクトの場合は,BOOLEAN型データが存在します。
(4) 戻り値
列の値が,「指定されたクラスのオブジェクト」として返却されます。検索結果と戻り値の関係を次の表に示します。
HADBのデータ型 |
検索結果 |
戻り値 |
---|---|---|
CHAR VARCHAR |
ナル値 |
null |
上記以外 |
検索結果で生成したStringオブジェクト |
|
SMALLINT |
ナル値 |
null |
上記以外 |
検索結果で生成したIntegerオブジェクト |
|
INTEGER |
ナル値 |
null |
上記以外 |
検索結果で生成したLongオブジェクト |
|
DECIMAL NUMERIC |
ナル値 |
null |
上記以外 |
検索結果で生成したjava.math.BigDecimalオブジェクト |
|
DOUBLE PRECISION FLOAT |
ナル値 |
null |
上記以外 |
検索結果で生成したDoubleオブジェクト |
|
DATE |
ナル値 |
null |
上記以外 |
検索結果で生成したjava.sql.Dateオブジェクト |
|
TIME |
ナル値 |
null |
上記以外 |
検索結果で生成したjava.sql.Timeオブジェクト |
|
TIMESTAMP |
ナル値 |
null |
上記以外 |
検索結果で生成したjava.sql.Timestampオブジェクト |
|
BINARY VARBINARY |
ナル値 |
null |
上記以外 |
検索結果 |
|
ROW |
ナル値以外※1 |
検索結果 |
BOOLEAN※2 |
ナル値 |
null |
上記以外 |
検索結果で生成したBooleanオブジェクト |
- 注※1
-
検索結果がナル値になることはありません。
- 注※2
-
DatabaseMetadataから生成されたResultsetオブジェクトの場合は,BOOLEAN型データが存在します。
(5) 発生する例外
次に示す場合にSQLExceptionが投入されます。
-
このResultSetオブジェクトがクローズされている場合
このResultSetオブジェクトを生成したStatementオブジェクトがクローズされたことによって,ResultSetオブジェクトがクローズされた場合も含みます。
-
このResultSetオブジェクトを生成したStatementオブジェクトを作成したConnectionがクローズされている場合
-
トランザクションの決着によってResultSetオブジェクトが無効になった場合
-
存在しない列番号を指定した場合
-
JDBCドライバ内でエラーが発生した場合
-
typeにnullを指定した場合
-
typeに指定できる組み合わせ以外の値を指定した場合