DB からファイルのコンテンツをクライアント ブラウザに直接ストリーミングする必要があるシナリオがあります。
そのため、プレーンな jdbc を使用rs.getBlob()
しblob.getBinaryStream();
てから、後で http 出力ストリームに書き込みます。
私が気づいたこと (非常に良いこと) は、ブロブを介して入力ストリームを取得すると、db 接続がデータソース プールに戻されることです。(ウェブロジック)
今、私はあなたに尋ねます、私の観察は正しいですか?長い時間がかかるダウンロードの場合、ファイルをストリーミングできるようにするために、db 接続が要求にとどまるのではないかと心配していたからです。
どうやらストリーミングが開始されると、DB 接続は使用されなくなります。
理解を深めるために、ここでいくつかのコードをモックアップします
@Trasactional
public void InputStream getIsFromBlob(....){
....
is = blob.getBinaryStream();
...
return is;
}
後で、このメソッドはサーブレットで使用され、http 出力ストリームにあるコンテキストを記述します。
ありがとう