| Symfoware(R) Server JDBCドライバユーザーズガイド - FUJITSU - |
目次
索引
![]()
|
第4章 アプリケーションの作成方法
データベースのBLOBデータを参照する場合、以下の手順で行います。

データベースのBLOBデータを参照する場合の記述例を以下に説明します。
Statement stmt = con.createStatement(); (1)
ResultSet rs = stmt.executeQuery(
"SELECT COL_BLOB FROM BLOBTBL WHERE COL_INT = 1"); (2)
while (rs.next()) (3)
{ (3)
InputStream oIS = rs.getBinaryStream(1); (4)
FileOutputStream fs = new FileOutputStream("ファイル名などを指定"); (4)
byte[] bTmp = new byte[oIS.available()]; (5)
oIS.read(bTmp); (5)
fs.write(bTmp); (5)
int iBData=0; (6)
while ((iBData=oIS.read()) != -1) (6)
{ (6)
fs.write(iBData); (6)
} (6)
oIS.close(); (7)
fs.close(); (7)
} (7)
rs.close(); (8)
stmt.close(); (8)
con.commit(); (9) |
(1) SQL文を実行するためのオブジェクトの生成
(2) ResultSetオブジェクトの生成
(3) カーソルの位置付け
(4) ResultSetオブジェクトからのデータ取得
(5) ストリームからのデータ読込み(byte配列)
(6) ストリームからのデータ読込み(1バイト)
(7) ストリームオブジェクトのクローズ
(8) オブジェクトのクローズ
(9) トランザクションのコミット
注) (5)と(6)はデータのサイズや件数、実行環境に合わせて使い分けてください。
以下に各項目の設定方法を示します。
ConnectionインタフェースのcreateStatementメソッドを使用し、Statementクラスのオブジェクトを生成します。
StatementクラスのexecuteQueryメソッドを使用し、ResultSetオブジェクトを生成します。
ResultSetクラスのnextメソッドを使用し、カーソルの位置付けを現在の位置から1行下に移動します。
ResultSetクラスのgetBinaryStreamメソッドを使用し、ResultSetオブジェクトからBLOB型のデータをストリームとして取得します。
InputStreamクラスのreadメソッドを使用して、ストリームからデータをbyte配列で一括に読み込みます。-
InputStreamクラスのreadメソッドを使用して、ストリームからデータを1バイトずつ-1(データなし)が返却されるまで読み込みます。
InputStreamクラスのcloseメソッドを使用して、オブジェクトをクローズします。
生成した各クラスのオブジェクトをクローズします。
ResultSetクラスのcloseメソッドと、Statementクラスのcloseメソッドを使用します。
トランザクションをコミットします。
Connectionインタフェースのcommitメソッドを使用します。
目次
索引
![]()
|