Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

付録I.2 JDBC2.0の概要

ここでは,Cosminexus DABroker Libraryで提供する,JDBC2.0基本規格に沿った機能の概要と注意事項について説明します。JDBC1.0が提供するクラスとメソッドの機能,およびJDBC2.0で規格化されていないDBPドライバだけの機能については,マニュアル「Cosminexus リファレンス API編」を参照してください。

<この項の構成>
(1) ResultSetの拡張
(2) バッチ更新
(3) JDBC SQLタイプの扱い

(1) ResultSetの拡張

JDBC2.0基本規格では,ResultSet(ResultSetクラス)の拡張機能として,「スクロール」と「並行処理」が追加されています。

(a) スクロールタイプ

ResultSetのスクロールタイプには,次の3種類があります。

(b) 並行処理タイプ

ResultSetの並行処理タイプには,次の種類があります。

(c) ResultSetタイプ

スクロールタイプと並行処理タイプを組み合わせることで,ResultSetには6種類のタイプがあります。Cosminexus DABroker Libraryでは,このうち2種類をサポートしています。ResultSetタイプは,ConnectionクラスのcreateStatementメソッド,prepareStatementメソッド,またはprepareCallメソッドで,Statementクラス(またはそのサブクラス)のインスタンスを取得する時に指定します。

6種類のResultSetタイプとCosminexus DABroker Libraryでのサポートを,次の表に示します。

表I-1 ResultSetのタイプ

ResultSetタイプ Cosminexus DABroker Libraryでのサポート
スクロールタイプ 並行処理タイプ
順方向専用型 読み取り専用型 ○
更新可能型 ×
スクロール非反映型 読み取り専用型 ○
更新可能型 ×
スクロール反映型 読み取り専用型 ×
更新可能型 ×

(凡例)
○:サポートしています。
×:サポートしていません。

サポートしていないResultSetタイプが指定された場合,エラーにはしないで,指定されたResultSetタイプにいちばん近いResultSetタイプを使用してStatementクラス(またはそのサブクラス)のインスタンスを生成します。また,警告メッセージをConnectionクラスのSQLWarningに格納します。

更新可能型の並行処理タイプはサポートしていないため,ResultSetクラスに使用できないメソッドがあります。これらの使用できないメソッドが呼び出された場合は,無条件にSQLExceptionをthrowします。どのメソッドが使用できないかについては,マニュアル「Cosminexus リファレンス API編」を参照してください。

(d) スクロール型ResultSet使用時の注意点

スクロール型ResultSetでは,Cosminexus DABroker Library内ですべての検索データをキャッシングします。データ量が大量な場合は,メモリ不足や性能劣化が発生する可能性が大きくなります。このため,スクロール型ResultSetを使用する場合は,「SQLに条件を付加する」,「StatementクラスのsetMaxRowsメソッドを呼び出す」など,検索データ量をあらかじめ抑制してください。

(2) バッチ更新

JDBC2.0基本規格では,Statementクラス,PreparedStatementクラス,およびCallableStatementクラスにバッチ更新機能が追加されています。バッチ更新機能を使うと,複数のSQL,または複数のパラメタ値を登録し,一括で実行できます。

注意
バッチ更新機能を使用する場合,ConnectionクラスのAUTOコミットモードをOFFにしてください。これは,バッチ更新の途中でエラーが発生した場合,そのトランザクションの有効・無効をアプリケーション側で制御する必要があるためです。AUTOコミットモードがON(初期状態)の場合,バッチ更新の途中でエラーが発生しても,エラーが発生する一つ前までのSQL実行は有効となるため,注意が必要です。CosminexusでJTAトランザクションを使用している場合,AUTOコミットモードはOFFになります。
(a) Statementクラスでのバッチ更新

概要
  • 複数の更新系SQLをaddBatchメソッドで登録します。
  • 登録した更新系SQLを,executeBatchメソッドを使用して一括で実行します。
  • 一括実行の結果として,それぞれの更新系SQLによって更新された行数の配列を返します。
  • 一括実行の途中でエラーが発生した場合,BatchUpdateExceptionをthrowします。
  • 登録したSQL中に検索系SQLがある場合,executeBatchメソッド呼び出し時にBatchUpdateExceptionをthrowします。

注意事項
DABrokerとのインタフェース上,複数のSQLを一括実行できないため,Cosminexus DABroker Libraryでは,登録されたSQLを逐次実行することでバッチ更新を実現しています。
(b) PreparedStatementクラスでのバッチ更新

概要
  • PreparedStatementインスタンス生成時に指定した,更新系SQLに対する?パラメタを,通常の手順(setXXXメソッド)で設定します。
  • addBatchメソッドで,?パラメタのセットを登録します。
  • 登録した複数セットの?パラメタを,executeBatchメソッドで一括実行します。
  • 一括実行の結果として,それぞれの?パラメタのセットで更新された行数の配列を返します。
  • 一括実行の途中でエラーが発生した場合,BatchUpdateExceptionをthrowします。
  • PreparedStatementインスタンス生成時に指定したSQLが検索系SQLである場合,executeBatchメソッド呼び出し時にBatchUpdateExceptionをthrowします。

注意事項
定義系および制御系SQLについては,addBatchメソッドを実行しないでください。
(c) CallableStatementクラスでのバッチ更新

概要
  • CallableStatementインスタンス生成時に指定した,SQLに対する?パラメタを,通常の手順(setXXXメソッド)で設定します。
  • addBatchメソッドで,入力パラメタのセットを登録します。
  • 登録した複数セットの入力パラメタを,executeBatchメソッドで一括実行します。
  • 一括実行の結果として,それぞれの入力パラメタのセットで実行された,SQLの返却値(更新行数)の配列を返します。
  • 一括実行の途中でエラーが発生した場合,BatchUpdateExceptionをthrowします。
  • CallableStatementインスタンス生成時に指定したSQLが更新行数を返さない場合,および出力パラメタか入出力パラメタを持つ場合,executeBatchメソッド呼び出し時にBatchUpdateExceptionをthrowします。

注意事項
定義系および制御系SQLについては,addBatchメソッドを実行しないでください。
(d) HiRDBの場合のバッチ更新

HiRDBの場合のバッチ更新処理は,次の2種類に分けられます。

HiRDBの配列更新機能とは,データベースにより提供される次の機能を指します。

HiRDBの配列更新機能では,複数の?パラメタセットを配列形式で扱い,一度に処理することができます。そのため,データベースとの通信回数が減り,大量のデータを高速に更新できます。

HiRDBの配列更新機能を使用するには,BlockUpdate設定をtrueにします。ただし,接続するHiRDBのバージョンによって使用できない場合があります。HiRDBの配列更新機能の詳細については,マニュアル「HiRDB UAP開発ガイド」およびマニュアル「HiRDB SQLリファレンス」を参照してください。

●addBatchメソッド−executeBatchメソッド使用時の仕様

次に,バッチ更新時に使用するaddBatchメソッド−executeBatchメソッド使用時の仕様を,BlockUpdate設定がtrueの場合とfalseの場合に分けて示します。

表I-2 addBatchメソッド−executeBatchメソッド使用時の仕様(BlockUpdate設定がtrue,HiRDBの場合)

実行するSQL文 DABrokerの仕様(処理方法)
HiRDB Version 6 HiRDB Version 7 07-00以降かつ07-00-/K以前 HiRDB Version 7 07-00-/L以降かつHiRDB Version 7 07-01未満 HiRDB Version 7 07-01以降
INSERT文
(VALUES句指定)
逐次実行 一括実行 一括実行 一括実行
INSERT文
(SELECT句指定)
逐次実行 KFPA19408-E 逐次実行 一括実行
UPDATE文 逐次実行 KFPA19408-E 逐次実行 一括実行
DELETE文 逐次実行 KFPA19408-E 逐次実行 一括実行
CALL文(OUTまたはINOUTパラメタあり) KFDJ00010-E KFDJ00010-E KFDJ00010-E KFDJ00010-E
CALL文(INパラメタだけ) 逐次実行 逐次実行 逐次実行 逐次実行

(凡例)
一括実行:HiRDBの配列更新機能を使用してSQLを一括実行します。
逐次実行:HiRDBの配列更新機能を使用しないでSQLを分けて実行します。
KFPA19408-E:エラー(KFPA19408-E)が発生します。HiRDBの配列更新機能は使用できません。
KFDJ00010-E:エラー(KFDJ00010-E)が発生します。JDBC2.0規格では,executeBatchメソッドで更新行数を返さないもの(SELECTなど)が含まれていた場合,例外となります。

表I-3  addBatchメソッド−executeBatchメソッド使用時の仕様(BlockUpdate設定がfalseまたは指定なし,HiRDBの場合)

実行するSQL文 DABrokerの仕様(処理方法)
INSERT文(VALUES句指定) 逐次実行
INSERT文(SELECT句指定) 逐次実行
UPDATE文 逐次実行
DELETE文 逐次実行
SELECT文 KFDJ00010-E
CALL文(OUTまたはINOUTパラメタあり) KFDJ00010-E
CALL文(INパラメタだけ) 逐次実行

(凡例)
逐次実行:HiRDBの配列更新機能を使用しないでSQLを分けて実行します。
KFDJ00010-E:エラー(KFDJ00010-E)が発生します。JDBC2.0規格では,executeBatchメソッドで更新行数を返さないもの(SELECTなど)が含まれていた場合,例外となります。

表I-4 addBatchメソッド−executeBatchメソッド使用時の仕様(BlockUpdate設定がtrue,HiRDBクライアント経由XDM/RD E2の場合)

実行するSQL DABrokerの仕様(処理方式)
HiRDBクライアント08-02未満 HiRDBクライアント08-02以降
XDM/RD E2(11-03未満) XDM/RD E2(11-03以降)
INSERT文(VALUES句指定) 逐次実行 逐次実行 一括実行
INSERT文(SELECT句指定) 逐次実行 逐次実行 一括実行
UPDATE文 逐次実行 逐次実行 一括実行
DELETE文 逐次実行 逐次実行 一括実行
SELECT文 KFDJ00010-E KFDJ00010-E KFDJ00010-E
CALL文(OUT,またはINOUTパラメタ有) KFDJ00010-E KFDJ00010-E KFDJ00010-E
CALL文(INパラメタだけ) 逐次実行 逐次実行 逐次実行

(凡例)
一括実行:HiRDBの配列更新機能を使用してSQLを一括実行します。
逐次実行:HiRDBの配列更新機能を使用しないでSQLを分けて実行します。
KFDJ00010-E:エラー(KFDJ00010-E)が発生します。JDBC2.0規格では,executeBatchメソッドで更新行数を返さないもの(SELECTなど)が含まれている場合,例外となります。

表I-5 addBatchメソッド−executeBatchメソッド使用時の仕様(BlockUpdate設定がfalseまたは指定なし,HiRDBクライアント経由XDM/RD E2の場合)

実行するSQL文 DABrokerの仕様
INSERT文(VALUES句指定) 逐次実行
INSERT文(SELECT句指定) 逐次実行
UPDATE文 逐次実行
DELETE文 逐次実行
SELECT文 KFDJ00010-E
CALL文(OUT,またはINOUTパラメタあり) KFDJ00010-E
CALL文(INパラメタだけ) 逐次実行

(凡例)
逐次実行:HiRDBの配列更新機能を使用しないでSQLを分けて実行します。
KFDJ00010-E:エラー(KFDJ00010-E)が発生します。JDBC2.0規格では,executeBatchメソッドで更新行数を返さないもの(SELECTなど)が含まれている場合,例外となります。

●HiRDBの配列更新機能の使用方法

HiRDBの配列更新機能の使用方法を次に示します。

●HiRDBの配列更新機能使用時の注意事項
(e) Oracleの場合のバッチ更新

ここでは,Oracleの場合のバッチ更新について説明します。

●addBatchメソッド−executeBatchメソッド使用時の仕様

次に,PreparedStatementおよびCallableStatementでのaddBatchメソッド−executeBatchメソッド使用時の仕様を,BlockUpdate設定がtrueの場合,falseの場合に分けて示します。

表I-6  addBatchメソッド−executeBatchメソッド使用時の仕様(BlockUpdate設定がtrue,Oracleの場合)

実行するSQL文 DABrokerの仕様(処理方法)
INSERT文(VALUES句指定) 逐次実行
INSERT文(SELECT句指定) 逐次実行
UPDATE文 逐次実行
DELETE文 逐次実行
SELECT文 KFDJ00010-E
BEGIN文(OUTまたはINOUTパラメタあり) KFDJ00010-E
BEGIN文(INパラメタだけ) 逐次実行

(凡例)
逐次実行:SQLを分けて実行します。
KFDJ00010-E:エラー(KFDJ00010-E)が発生します。JDBC2.0規格では,executeBatchメソッドで更新行数を返さないもの(SELECTなど)が含まれていた場合,例外となります。

表I-7  addBatchメソッド−executeBatchメソッド使用時の仕様(BlockUpdate設定がfalseまたは指定なし,Oracleの場合)

実行するSQL文 DABrokerの仕様(処理方法)
INSERT文(VALUES句指定) 逐次実行
INSERT文(SELECT句指定) 逐次実行
UPDATE文 逐次実行
DELETE文 逐次実行
SELECT文 KFDJ00010-E
BEGIN文(OUTまたはINOUTパラメタあり) KFDJ00010-E
BEGIN文(INパラメタだけ) 逐次実行

(凡例)
逐次実行:SQLを分けて実行します。
KFDJ00010-E:エラー(KFDJ00010-E)が発生します。JDBC2.0規格では,executeBatchメソッドで更新行数を返さないもの(SELECTなど)が含まれていた場合,例外となります。

●addBatchメソッド使用時の注意事項

(3) JDBC SQLタイプの扱い

JDBC2.0基本規格では,幾つかの新しいJDBC SQLタイプが追加されています。追加されたJDBC SQLタイプとCosminexus DABroker Libraryでのサポートを,次の表に示します。

表I-8  追加されたJDBC SQLタイプとCosminexus DABroker Libraryでのサポート

追加されたJDBC SQLタイプ Cosminexus DABroker Libraryでのサポート
BLOB ○
CLOB △
ARRAY ×
REF ×
DISTINCT ×
STRUCT ×
JAVA OBJECT ×

(凡例)
○:Oracle9i,Oracle10g,およびHiRDBでサポートしています。
△:Oracle9i,およびOracle10gでだけサポートしています。
×:サポートしていません。
(a) 検索データ取得時のデータ変換

追加されたJDBC SQLタイプと,ResultSetクラスのgetXXXメソッドとのデータ変換について,次の表に示します。変換できないJDBC SQLタイプに対してgetXXXメソッドが呼び出された場合は,SQLExceptionをthrowします。接続データベースがどのJDBC SQLタイプをサポートしているかは,「付録I.7 データ型の対応」を参照してください。

なお,JDBC2.0規格ではgetUnicodeStreamメソッドが推奨されないメソッドとなったため,代わりにgetCharacterStreamが追加されています。

表I-9  ResultSetクラスのgetXXXメソッドとJDBC SQLタイプとのデータ変換 (1)

getXXXメソッド JDBC SQLタイプ
B
I
T
T
I
N
Y
I
N
T
S
M
A
L
L
I
N
T
I
N
T
E
G
E
R
B
I
G
I
N
T
F
L
O
A
T
R
E
A
L
D
O
U
B
L
E
N
U
M
E
R
I
C
D
E
C
I
M
A
L
C
H
A
R
V
A
R
C
H
A
R
L
O
N
G
V
A
R
C
H
A
R
getByte ○ ◎ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
getShort ○ ○ ◎ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
getInt ○ ○ ○ ◎ ○ ○ ○ ○ ○ ○ ○ ○ ○
getLong ○ ○ ○ ○ ◎ ○ ○ ○ ○ ○ ○ ○ ○
getFloat ○ ○ ○ ○ ○ ○ ◎ ○ ○ ○ ○ ○ ○
getDouble ○ ○ ○ ○ ○ ◎ ○ ◎ ○ ○ ○ ○ ○
getBigDecimal ○ ○ ○ ○ ○ ○ ○ ○ ◎ ◎ ■ ○ ○
getBoolean ◎ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
getString ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ◎ ◎ ○
getBytes − − − − − − − − − − − − −
getDate※1 − − − − − − − − − − ○ ○ ○
getTime※1 − − − − − − − − − − ○ ○ ○
getTimestamp※1 − − − − − − − − − − ○ ○ ○
getAsciiStream − − − − − − − − − − ○ ○ ◎
getUnicodeStream − − − − − − − − − − ○ ○ ◎
getBinaryStream − − − − − − − − − − − − −
getObject ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
getCharacter
Stream
− − − − − − − − − − ○ ○ ◎
getArray
(未サポート)
− − − − − − − − − − − − −
getBlob※2 − − − − − − − − − − − − −
getClob※3 − − − − − − − − − − − − −
getRef
(未サポート)
− − − − − − − − − − − − −

(凡例)
◎:完全に変換できます。
○:変換できます。ただし,変換元のデータの内容によってはデータの欠落や変換エラーとなることがあります。
■:設定値が定義長に満たない場合,エラーが発生します。
−:変換できません。

注※1
引数にjava.util.Calendarオブジェクトを指定するgetDate,getTimeおよびgetTimestampメソッドを実行すると,データベースに格納されたデータが指定したjava.util.Calendarオブジェクトのタイムゾーンであるとして,実行しているアプリケーションのデフォルトのタイムゾーンに変換して取得します。

注※2
Oracle9i,Oracle10g,およびHiRDBでサポートしています。

注※3
Oracle9i,およびOracle10gでサポートしています。
 

表I-10  ResultSetクラスのgetXXXメソッドとJDBC SQLタイプとのデータ変換 (2)

getXXXメソッド JDBC SQLタイプ
D
A
T
E
T
I
M
E
T
I
M
E
S
T
A
M
P
B
I
N
A
R
Y
V
A
R
B
I
N
A
R
Y
L
O
N
G
V
A
R
B
I
N
A
R
Y
J
A
V
A
O
B
J
E
C
T
S
T
R
U
C
T
A
R
R
A
Y
B
L
O
B
C
L
O
B
R
E
F
getByte − − − − − − − − − − − −
getShort − − − − − − − − − − − −
getInt − − − − − − − − − − − −
getLong − − − − − − − − − − − −
getFloat − − − − − − − − − − − −
getDouble − − − − − − − − − − − −
getBigDecimal − − − − − − − − − − − −
getBoolean − − − − − − − − − − − −
getString ○ ○ ○ ○ ○ ○ − − − − − −
getBytes − − − ◎ ◎ ○ − − − − − −
getDate※1 ◎ − ○ − − − − − − − − −
getTime※1 − ◎ ○ − − − − − − − − −
getTimestamp※1 ○ − ◎ − − − − − − − − −
getAsciiStream − − − ○ ○ ○ − − − − − −
getUnicodeStream − − − ○ ○ ○ − − − − − −
getBinaryStream − − − ○ ○ ◎ − − − − − −
getObject ○ ○ ○ ○ ○ ○ ▲ ▲ △ ▼ ▼ △
getCharacter
Stream
− − − ○ ○ ○ − − − − − −
getArray
(未サポート)
− − − − − − − − ▲ − − −
getBlob※2 − − − − − ○※4 − − − ● − −
getClob※3 − − − − − − − − − − ● −
getRef
(未サポート)
− − − − − − − − − − − ▲

(凡例)
◎:完全に変換できます。
○:変換できます。ただし,変換元のデータの内容によってはデータの欠落や変換エラーとなることがあります。
●:完全に変換できる組み合わせです。ただし,接続するデータベースがOracle9iまたはOracle10gの場合以外は,JDBC SQLタイプが未サポートのため使えません。
▼:変換できる組み合わせです。ただし,接続するデータベースがOracle9iまたはOracle10gの場合以外は,JDBC SQLタイプが未サポートのため使えません。
▲:完全に変換できる組み合わせです。ただし,JDBC SQLタイプが未サポートのため使えません。
△:変換できる組み合わせです。ただし,JDBC SQLタイプが未サポートのため使えません。
−:変換できません。

注※1
引数にjava.util.Calendarオブジェクトを指定するgetDate,getTimeおよびgetTimestampメソッドを実行すると,データベースに格納されたデータが指定したjava.util.Calendarオブジェクトのタイムゾーンであるとして,実行しているアプリケーションのデフォルトのタイムゾーンに変換して取得します。

注※2
Oracle9i,Oracle10g,およびHiRDBでサポートしています。

注※3
Oracle9i,およびOracle10gでサポートしています。

注※4
HiRDBでだけサポートしています。
(b) ?パラメタ設定時のデータ変換

追加されたJDBC SQLタイプと,PreparedStatementクラスのsetXXXメソッドとのデータ変換について,次の表に示します。JDBC SQLタイプをサポートしていない場合,setXXXメソッドはSQLExceptionをthrowします。接続データベースがどのJDBC SQLタイプをサポートしているかは,「付録I.7 データ型の対応」を参照してください。

なお,JDBC2.0規格では,setUnicodeStreamメソッドが推奨されないメソッドとなったため,代わりにsetCharacterStreamが追加されています。

表I-11  追加されたJDBC SQLタイプとsetXXXメソッド

setXXXメソッド データ変換されるJDBC SQLタイプ
setCharacterStream CHAR,VARCHAR,またはLONGVARCHAR
setRef(未サポート) REF
setBlob※1 BLOB,LONGVARBINARY
setClob※2 CLOB
setArray(未サポート) ARRAY

注※1
Oracle9i,Oracle10g,およびHiRDBでサポートしています。

注※2
Oracle9i,およびOracle10gでサポートしています。
 

表I-12  setXXXメソッドとJDBC SQLタイプとのデータ変換 (1)

setXXXメソッド JDBC SQLタイプ
B
I
T
T
I
N
Y
I
N
T
S
M
A
L
L
I
N
T
I
N
T
E
G
E
R
B
I
G
I
N
T
F
L
O
A
T
R
E
A
L
D
O
U
B
L
E
N
U
M
E
R
I
C
D
E
C
I
M
A
L
C
H
A
R
V
A
R
C
H
A
R
L
O
N
G
V
A
R
C
H
A
R
setByte ○ ◎ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
setShort ○ ○ ◎ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
setInt ○ ○ ○ ◎ ○ ○ ○ ○ ○ ○ ○ ○ ○
setLong ○ ○ ○ ○ ◎ ○ ○ ○ ○ ○ ○ ○ ○
setFloat ○ ○ ○ ○ ○ ○ ◎ ○ ○ ○ ○ ○ ○
setDouble ○ ○ ○ ○ ○ ◎ ○ ◎ ○ ○ ○ ○ ○
setBigDecimal ○ ○ ○ ○ ○ ○ ○ ○ ◎ ◎ ○ ○ ○
setBoolean ◎ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
setString ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ◎ ◎ ○
setBytes − − − − − − − − − − − − −
setDate − − − − − − − − − − ○ ○ ○
setTime − − − − − − − − − − ○ ○ ○
setTimestamp − − − − − − − − − − ○ ○ ○
setAsciiStream − − − − − − − − − − ○※4 ○※4 ○※4
setUnicodeStream※1 − − − − − − − − − − ○ ○ ○
setBinaryStream − − − − − − − − − − − − −
setObject ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
setCharacterStream − − − − − − − − − − ○※5 ○※5 ○※5
setArray
(未サポート)
− − − − − − − − − − − − −
setBlob※2 − − − − − − − − − − − − −
setClob※3 − − − − − − − − − − − − −
setRef
(未サポート)
− − − − − − − − − − − − −

(凡例)
◎:完全に変換できます。
○:変換できます。ただし,変換元のデータの内容によってはデータの欠落や変換エラーとなることがあります。
−:変換できません。

注※1
Oracle9i,Oracle10g,およびHiRDBでサポートしています。

注※2
Oracle9i,およびOracle10gでサポートしています。

注※3
長さが0のデータを設定するとエラーになります。

注※4
接続データベースがOracleの場合,長さが0のデータを設定すると,NULL値に変換します。

注※5
java.io.Readerオブジェクトから取得できるデータの長さが引数で指定した長さより短い場合,次のように引数で指定した長さまで0を補完します。
[図データ]

 

表I-13  setXXXメソッドとJDBC SQLタイプとのデータ変換(2)

setXXXメソッド JDBC SQLタイプ
D
A
T
E
T
I
M
E
T
I
M
E
S
T
A
M
P
B
I
N
A
R
Y
V
A
R
B
I
N
A
R
Y
L
O
N
G
V
A
R
B
I
N
A
R
Y
J
A
V
A
O
B
J
E
C
T
S
T
R
U
C
T
A
R
R
A
Y
B
L
O
B
C
L
O
B
R
E
F
setByte − − − − − − − − − − − −
setShort − − − − − − − − − − − −
setInt − − − − − − − − − − − −
setLong − − − − − − − − − − − −
setFloat − − − − − − − − − − − −
setDouble − − − − − − − − − − − −
setBigDecimal − − − − − − − − − − − −
setBoolean − − − − − − − − − − − −
setString ○ ○ ○ ○ ○ ○ − − − − − −
setBytes − − − ◎ ◎ ○ − − − − − −
setDate ◎ − ○ − − − − − − − − −
setTime − ◎ ○ − − − − − − − − −
setTimestamp ○ − ◎ − − − − − − − − −
setAsciiStream − − − ○ ○※4 ○※4 − − − − − −
setUnicodeStream※3 − − − ○ ○ ○ − − − − − −
setBinaryStream − − − ○ ○※4 ○※4 − − − − − −
setObject ○ ○ ○ ○ ○ ○ ▲ ▲ △ ▼ ▼ △
setCharacterStream − − − ○※5 ○※5 ○※5 − − − − − −
setArray(未サポート) − − − − − − − − ▲ − − −
setBlob※1 − − − − − ○※1 − − − ●※2※4 − −
setClob※2 − − − − − − − − − − ●※4 −
setRef(未サポート) − − − − − − − − − − − ▲

(凡例)
◎:完全に変換できます。
○:変換できます。ただし,変換元のデータの内容によってはデータの欠落や変換エラーとなることがあります。
●:完全に変換できる組み合わせは,接続するデータベースがOracle9iまたはOracle10gの場合以外は,JDBC SQLタイプが未サポートのため使えません。
▼:変換できる組み合わせは,接続するデータベースがOracle9iまたはOracle10gの場合以外は,JDBC SQLタイプが未サポートのため使えません。
▲:完全に変換できる組み合わせは,JDBC SQLタイプが未サポートのため使えません。
△:変換できる組み合わせは,JDBC SQLタイプが未サポートのため使えません。
−:変換できません。

注※1
Oracle9i,Oracle10g,およびHiRDBでサポートしています。

注※2
Oracle9i,およびOracle10gでサポートしています。

注※3
長さが0のデータを設定するとエラーになります。

注※4
接続データベースがOracleである場合,長さが0であるデータを設定するとNULL値に変換します。

注※5
java.io.Readerオブジェクトから取得できるデータの長さが引数で指定した長さより短い場合,次のように引数で指定した長さまで0を補完します。
[図データ]