�果セット�列�ストリーミング

ã‚‚ã?—å…ƒã?¨ã?ªã‚‹ã‚ªãƒ–ジェクトã?Œ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();