`
当当猫
  • 浏览: 47258 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

BLOB字段数据读取

阅读更多

 因为开发的时候公司的项目,所以只能说明不能截图了,在这里请大家谅解。

     BLOB这个字段,首先是存大数据的,本人倒是不建议在数据库中存入那么大的数据,影响服务器性能。而且如果表没有采用分布存储,没有考虑维护,一段时间就会很大,本人一点见解,表大小超过1G的容量时候,明显影响数据读取速度。这个扯的有点远了,回归正题。

  我了解的系统是用HIBernate 读取大容量的BLOB,中间采用SPRING进行管理。

在SPRING applicationContext.xml中配置

 <bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" />

 并将其映射到TransactionMaanger中

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
            <property name="lobHandler" ref="lobHandler"/> 
    </bean> 

 

在程序中 如有以下对象

public class USER{
 private BLOB Info;
private String name;
//生成get和set方法


}

 HIbernate 读取BLOB字段

BLOB blob=User.getInfo();
if(blob.length>0)
{
Byte[] bytes=new Byte[blob.length-1];
bytes=blob.getBytes();//装到bytes数组里;
//转换成String
string str=new String(bytes,"GBK");
}

 这样就转换过来了。

我之所以要写 HIBernate 的读取 是要跟Ibatis做对照

因为在iBatis 中查询返回List 当然BLOB字段也是被查询出来了。

我调试了以下发现 List中装的就是HashMap 一个是BLOB字段,一个当然是值,仔细在看发现就是bytes格式看来不用转了。直接就可以用

//这里是伪代码只表达大意
Iterator it=list.iterator();
while(it.hashnext())
{
HashMap hm=(HashMap)it.next();

Bytes[] bytes=hm.get("info").getValue();//这样就把BLOB数据装进去了。


}

 

 

 

分享到:
评论

相关推荐

    C#访问oracle数据库类,带blob字段读写

    读取Blob字段时,可以创建一个`OracleBinary`对象,然后使用`GetValue`方法获取Blob数据。写入Blob字段时,先创建`OracleParameter`对象,将其Direction设置为` ParameterDirection.Input `,OracleDbType设置为`...

    delphi读写BLOB字段

    delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段...

    oracle中读取blob字段.doc

    这通常涉及到从本地文件中读取数据,然后写入到BLOB对象中。 ```java // 读取本地文件数据 InputStream is = new FileInputStream("path/to/local/file"); byte[] buffer = new byte[10240]; int bytesRead; while ...

    kettle通过java代码将数据库blob 字段抽取到本地文件

    kettle通过java代码将数据库blob 字段抽取到本地文件

    分块读取Blob字段数据演示(Delphi + Oracle)

    分块读取Blob字段是优化大量数据传输的有效策略,避免一次性加载大文件导致内存压力过大。 首先,`createTable.sql` 文件可能包含了创建包含Blob字段的Oracle表的SQL语句。通常,这样的语句会类似于: ```sql ...

    java对oracle数据库中blob字段的处理

    BLOB字段主要用于存储大量的二进制数据,如图像、音频、视频或任何其他非文本格式的数据。Java对Oracle数据库中BLOB字段的处理涉及多个层面,包括读取、写入、更新以及跨数据库操作等。 ### Java处理Oracle BLOB...

    java中读取ORACLE中BLOB字段存储的图片

    本文将详细介绍如何在Java应用程序中读取存储在Oracle数据库BLOB字段中的图片数据。 #### 二、准备工作 为了实现读取Oracle数据库中的BLOB字段存储的图片,我们需要进行以下准备: 1. **环境搭建**: - Oracle...

    批量导出ORACLE数据库BLOB字段生成文件

    本教程将详细讲解如何批量导出Oracle数据库中的BLOB字段并生成文件,适用于需要定期或一次性处理大量图片或其他BLOB数据的场景。 首先,确保你已经在本地安装了Oracle客户端。Oracle客户端提供了SQL*Plus和其他工具...

    Struts用JDBC的Blob字段保存和读取Oracle数据库

    - 从Blob对象中读取数据并写入输出流。 ```java public void restoreFile(String fileName, OutputStream os) throws SQLException { Connection con = null; PreparedStatement ps = null; ResultSet rs = ...

    Oracle blob字段上传下载

    ### Oracle Blob字段上传与下载详解 #### 一、概述 在数据库系统中,二进制大对象(Binary Large Object,简称BLOB)是一种用于存储大量二进制数据的数据类型,例如图像、音频或视频文件等。Oracle数据库支持Blob...

    Hibernate读取blob字段

    因此,推荐使用流式处理,就像上面的示例那样,使用`getBinaryStream()`方法获取输入流,并按需读取数据。 5. **优化与注意事项** - 为了提高性能,可以在数据库层面创建Blob字段的索引,但这可能会影响写入速度。...

    oracle blob 字段 读写 delphi

    - 对于DBExpress,可以使用TOracleQuery组件的SQL属性执行查询,然后在OnBeforeOpen事件中处理BLOB字段,通过TOracleBlobField对象访问BLOB数据。 - 对于ADO,使用TADODBCommand对象的Execute方法执行查询,通过...

    oracle查询blob字段照片(jpeg) 像素大小sql

    本篇文章将详细介绍如何通过SQL查询语句获取存储在Blob字段中的JPEG格式照片的像素大小。 ### 1. 了解Blob数据类型 在Oracle数据库中,Blob(Binary Large Object)类型用于存储大容量的二进制数据,比如图像、音频...

    基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案.pdf

    本文介绍了一种基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案,展示了JSP技术、ORACLE数据库BLOB字段、坐标点的存储和读取、图形的显示、排样数据表设计、Samplegraph.jsp的功能、JAVA类的应用等知识点。

    Java读取数据库中blob字段并插入到另一个表中

    可以从数据库中读取blob字段并插入到另一个表中,已经测试通过

    ORACLE中BLOB字段导入到SQL SERVER中的IMAGE字段

    1. **数据准备**:确保ORACLE数据库中的BLOB字段包含所需的数据,并且是完整的。可能需要进行数据验证,以确保所有数据都能被正确读取。 2. **数据导出**:使用ORACLE提供的工具,如SQL*Plus或者PL/SQL Developer,...

    C#,BLOB读取操作

    C# 中的 BLOB(Binary Large OBject)读取操作是指从数据库中读取二进制数据的过程。BLOB 是一种二进制数据类型,用于存储大规模的二进制数据,如图片、音频、视频等。在 C# 中,我们可以使用 FileStream 对象来读取...

    VS、VC++实现对象序列化保存到sqlite表blob类型字段中,包含blob字段的读取和保存,

    我们需要使用`sqlite3_bind_blob`函数来插入数据,以及`sqlite3_column_blob`来读取数据。以下是一个简单的示例: ```cpp void saveToBlob(sqlite3* db, MyClass obj, int rowId) { std::stringstream ss; boost:...

    java,Blob字段操作,将图片或者文件保存到数据库中.zip

    - 从Blob对象中读取数据,可以使用`Blob.getBytes(long pos, int length)`或`Blob.setBinaryStream(long pos)`方法。 6. **将Blob数据保存回文件** - 获取Blob数据后,可以通过`FileOutputStream`将Blob数据写入...

    Delphi将图片以二进制方式存储在数据库BLOB字段中.rar

    相反,从数据库读取BLOB数据时,我们先执行SELECT语句,获取BLOB字段,然后将返回的二进制流写入TMemoryStream。最后,可以将TMemoryStream的数据写入一个临时文件或直接显示在Image组件上。 在"Delphi将图片以二...

Global site tag (gtag.js) - Google Analytics