結果セットと列のストリーミング

もし元となるオブジェクトがOutputStreamクラスであれば、getBinaryStreamはそのオブジェクトを直接返します。

可能な型であればgetXXXStreamメソッドにより、列をストリーミングしてResultSetからフィールドを取得することができます。 何らかのストリームを利用可能な型の一覧については、ストリーム可能なJDBCのデータ型を参照してください。(また、SQL型とjava.sql.Typesの対応も参照してください。)

実際にストリームとして記録されているか否かにかかわらず、型に従いストリームとして取得することが可能か決まります。

次の例ではLONG VARCHARの列がストリームとして取得されます。
// データをストリームとして取得する。
ResultSet rs = s.executeQuery("SELECT b FROM atable");
while (rs.next()) {
    // java.io.InputStreamを使ってデータを取得する。
    java.io.InputStream ip = rs.getAsciiStream(1);
    // ストリームを処理する。--これはデータを出力する
    // 一般的なやり方である。
    int c;
    int columnSize = 0;
    byte[] buff = new byte[128];
    for (;;) {
        int size = ip.read(buff);
        if (size == -1)
            break;
        columnSize += size;
        String chunk = new String(buff, 0, size);
        System.out.print(chunk);
    }
}
rs.close();
s.close();
conn.commit();