- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
有 3 种不同的方法可以从 ResultSet
BLOB
列中获取数据
getBytes
getBinaryStream
getBlob
另外,getBlob
返回的 Blob
对象也有 getBytes
和 getBinaryStream
方法可用。
是否有任何特殊原因(性能、内存、数据库特定问题)我应该选择其中一个?
Blob
对象还具有自 JDBC 4.0 以来引入的 free()
调用。这有什么不同吗?
最佳答案
如果您要提取大量数据(即足够的数据会导致内存问题),那么 getBinaryStream 将为您提供最大的灵 active 来处理和丢弃读取的数据。
另一方面,这可能会很慢,具体取决于您的 JDBC 驱动程序,因为每次从流中读取都可能需要与数据库进行大量网络通信。如果您调用 getBytes,那么驱动程序就知道一次性获取全部内容,这可能会更有效率。
getBlob() 返回一个指向数据的“指针”,您可以使用 Blob 接口(interface)上的方法对其进行操作。如果您需要修改或以其他方式对数据感兴趣,那么这可能是您的最佳选择。
关于java - getBytes vs getBinaryStream vs getBlob 用于从 BLOB 列中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/760781/
我的数据库表中有一个 varchar2 类型的 column1 。我从 java 读到了这个专栏 java.sql.ResultSet r = s.executeQuery("Select * fr
当我从数据库中读取 blob 数据时,我得到了 null 值。可能是什么问题?有人可以帮我解决这个问题吗? Connection con = null; PreparedStatement psS
我有一个从 oracle 数据库中获取 blob 的 java 方法(我使用的是 ojdbc8.jar)。此方法将 blob 写入 OutputStream(对于客户端): // OutputStre
我有以下代码: BlobDomain blob = mrow.getFileText(); StringBuffer o = new StringBuffer("");
在 mysql 中我有表 CREATE TABLE `articles_attachments` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
当 blob 列在数据库上具有空值时,我遇到 getBinaryStream 方法的问题,这是我的代码: public void getAderent(int id ) throws IOExcept
如何使用 jdbc 将整个表写入平面文件(文本文件)?到目前为止,我尝试了以下方法: Statement statement = connection.createStatement(); Re
我正在使用 Hibernate 3.1 和 Oracle 10 DB。 blob 在 Hibernate 实体中定义为 @Lob @Basic @Column ,对应于相关的数据库表。错误 -java
有 3 种不同的方法可以从 ResultSet 的 BLOB 列中获取数据 getBytes getBinaryStream getBlob 另外,getBlob 返回的 Blob 对象也有 getB
我是一名优秀的程序员,十分优秀!