【问题标题】:Retreiving BLOB value from Database using OutputStreamBlob.class of ojdbc jar file使用 ojdbc jar 文件的 OutputStream Blob.class 从数据库中检索 BLOB 值
【发布时间】:2015-08-18 03:07:17
【问题描述】:

在jdbc瘦应用中,如果我们想从数据库中检索照片(BLOB),我们通过

获取输入流对象

InputStream is= rs.getBinaryStream(columnIndex);

在内部创建一个对象

oracle.jdbc.driver.OracleBlobInputStream 

但是在使用输出流时,我们必须像这样显式地创建输出流对象

OutputStream os=new FileOutputStream("文件夹路径");

为什么我们不能使用 ojdbc6.jar 的oracle.jdbc.driver.OracleBlobOutputStream.class 来获取 os 对象。

为什么我们必须明确创建。希望你们能帮助我,在此先感谢

【问题讨论】:

  • 你的意思是,你必须创建明确的输出流?输入流用于读取数据(照片),那么为什么要输出流呢?
  • 我创建输出流 obj 以指向我想使用缓冲区作为中介从输入流(源)写入数据(照片)(目标)的文件夹

标签: java oracle ojdbc


【解决方案1】:

ResultSet 为您提供了从 SQL 查询中检索值的方法。对于 Blob,您可以通过 3 种形式获取该数据:

  • 字节数组 (getBytes)
  • 输入流 (getBinaryStream)
  • Blob 对象 (getBlob)

您如何处理这些数据完全取决于您自己。如果您想转身并将该数据保存到文件中,您必须使用FileOutputStream 执行此操作并将数据写入该流。

ResultSet 接口不可能实现将数据发送到所有可能的地方的方法。如果您想在 Swing 应用程序中使用 Photo 怎么办?或者使用 FTP、WebDAV、HTTP 发送到服务器……你真的认为这应该是ResultSet 的责任?

【讨论】:

  • 感谢 andreas 解决了我的疑问,因为 ResultSet 无法做到这一点,所以我们正在创建一个 FileOutputStream 对象来将文件发送到目的地..
  • @RameshRaj 不客气。那么请接受这个作为答案,以便其他人可以轻松看到它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 1970-01-01
  • 2016-05-28
  • 2011-09-09
  • 2012-01-25
  • 1970-01-01
  • 2014-11-27
相关资源
最近更新 更多