`
elaine0111
  • 浏览: 95471 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

操作BLOB文件数据

阅读更多
1.
   数据库中的字段:private Blob pdf;

2.
   DAO文件操作:插入
SessionFactory   sf   =   getHibernateTemplate().getSessionFactory();
     Session s = sf.openSession(); 

Transaction tran=s.beginTransaction();
transientInstance.setPdf(Hibernate.createBlob(new byte[1]));
    s.save(transientInstance);
    s.flush();
    s.refresh(transientInstance,LockMode.UPGRADE);
    Blob blob=transientInstance.getPdf();
    InputStream is;
is = blob.getBinaryStream();
FileInputStream img = null;
try {
System.out.println("dao filePaht 11 == " + filePath);
String filePath1 = "";
try {
filePath1 = new String(filePath.getBytes("iso8859-1"),"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("dao filePaht 22 == " + filePath1);
img = new FileInputStream(filePath1);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Blob images = null;
try {
images = (Blob) Hibernate.createBlob(img);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

transientInstance.setPdf(images);
System.out.println("save dao == " + transientInstance.getPdf());
    s.save(transientInstance);
   
    tran.commit();

    DAO操作 输出:
public String menuPdf(){

response = ServletActionContext.getResponse();

System.out.println("id == " + id);
menu = treeService.findById(id);
System.out.println("blob pdf == " + menu.getPdfid());
Nipdf nipdf = pdfService.findById(menu.getPdfid());
String fileName = nipdf.getName();

if(nipdf.getPdf() != null){
System.out.println("有BOLB文档了");

 
//Nipdf ni = pdfList.get(i);  
try {   
//从数据库中要读取出来   
System.out.println(nipdf.getPdf().length());
InputStream is = nipdf.getPdf().getBinaryStream();   
//在把写到一个图片格式的文件里   
FileOutputStream fos = new FileOutputStream("e:\\out_" + nipdf.getName());   

byte[] buffer = new byte[1024];   
int len = 0;   
//从数据库中读取到指定的字节数组中   
while((len = is.read(buffer) )!= -1){   
//从指定的数组中读取,然后输出来,所以这里buffer好象是连接inputStream和outputStream的一个东西   
fos.write(buffer,0,len);   
}   
} catch (FileNotFoundException e) {   
e.printStackTrace();   
} catch (SQLException e) {   
e.printStackTrace();   
} catch (IOException  e){   
e.printStackTrace();   

}

return SUCCESS;

}
分享到:
评论

相关推荐

    在PowerBuilder中操作BLOB数据的技巧

    在 PowerBuilder 中操作 BLOB 数据的技巧 PowerBuilder 提供的 BLOB(Binary Large Object)数据类型可以用来处理大型数据,包括图像、大文本、Word 文档、二进制文件和多媒体等各种数据,它的长度可以是 0~2GB ...

    oracle blob转文件读取

    4. **处理Blob数据**:将Blob数据转换为文件并进行相应的操作。 #### 三、示例代码解析 根据提供的部分代码片段,我们可以进一步了解如何在C#中操作Oracle数据库中的Blob数据。 ```csharp using System; using ...

    java 存数据库 blob文件的示例

    在Java编程中,Blob(Binary Large Object)是用于存储大对象数据类型的一种方式,常见于关系型数据库中,如SQL Server。Blob类型适用于存储图片、音频、视频等非结构化数据。本示例将详细解释如何使用Java向SQL ...

    Blob数据下载到本地

    本篇文章将详细讲解如何从Oracle数据库中下载Blob数据并将其转化为图片文件保存到本地。 首先,我们需要了解Blob数据是如何存储在数据库中的。Blob数据类型可以存储最多4GB的数据,并且它不包含任何关于数据内容的...

    关于在SQL Server数据库系统中存取BLOB数据的探讨.pdf

    在SQL Server数据库系统中,BLOB数据可以存储在关系表中,而不是作为文件存储在磁盘上。这可以提高数据的安全性和可维护性。同时,使用SQL Server数据库系统也可以提高数据的查询速度和处理效率。 在开发设备管理...

    C#,BLOB读取操作

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

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

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

    blob 文件入库例子

    Blob文件入库是指将Blob类型的文件存储到数据库的过程,这对于管理和检索大量的图片、音频、视频等非结构化数据非常有用。本示例主要涉及Java编程语言,通过源代码实现Blob文件入库的功能。 `FetchDir.java`可能是...

    javascript使用Blob对象实现的下载文件操作示例

    总结来说,使用Blob对象实现的下载文件操作主要涉及以下步骤: 1. 配置HTTP请求,设置`responseType`为`arraybuffer`或`blob`。 2. 接收后端返回的文件内容,创建Blob对象。 3. 对于支持`download`属性的浏览器,...

    插入、取出Blob类型的数据代码示例

    本示例主要讲解如何在Oracle数据库中操作Blob类型的数据,包括插入和取出。 首先,我们需要理解Oracle数据库对Blob类型的处理。Blob是Oracle中的一个大对象数据类型,它可以存储最多4GB的二进制数据。Blob数据可以...

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

    以上就是Java中Blob字段操作的基本流程,通过这些步骤,你可以成功地将图片或文件保存到数据库中,并能从数据库中读取和恢复这些数据。在实际开发中,根据具体需求,可能还需要处理异常、事务管理和资源关闭等问题,...

    利用VB存取数据库中BLOB数据

    BLOB类型通常用于存储非结构化的数据,如图片、音频、视频或者任何二进制文件。以下将详细讲解如何利用VB来存取数据库中的BLOB数据。 首先,我们需要了解BLOB数据的基本概念。BLOB是数据库管理系统中用来存储大量二...

    sql课件第16章 BLOB数据数据操作和水晶报表

    BLOB数据的操作通常涉及如何将这些文件存入数据库以及如何从数据库中检索和展示它们。在第16章中,主要探讨了两种处理BLOB数据的方式:文件方式和字段方式。 1. **文件方式**: - 在文件方式中,BLOB数据不直接...

    SQLSERVER数据库中存储BLOB类型数据,在线等现在公司要求用PB6.5+SQLser

    本文主要探讨在 SQL Server 数据库环境下如何实现 BLOB 类型数据的有效存储,并结合 PowerBuilder 6.5 这一开发工具进行具体操作。 #### 二、BLOB 类型概述 BLOB (Binary Large Object) 是一种专门用于存储大量二...

    QT-Mysql-Blob.zip_mysql blob_qt blob 文件_qt blob类型_qt的blob

    下面我们将详细讨论如何在MySQL和Qt环境下对BLOB数据类型进行操作。 首先,BLOB是一个用于存储大块二进制数据的数据类型,包括四种变体:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB,它们的区别主要在于能存储的最大...

    blob类型数据

    - 插入:插入blob数据时,需要将二进制数据转换为适合数据库存储的格式,如使用C#的`File.ReadAllBytes()`方法读取文件内容,然后将结果插入到数据库的blob字段。 - 查询:查询时,数据库返回的是blob数据的指针,...

    基于Linux的BLOB文件系统的设计.pdf

    BLOB文件系统在物理布局上将文件划分为一系列线性块,大部分块用于存储视频流数据,另一部分用于保存文件系统结构信息。为了优化I/O吞吐率并减少磁头定位次数,BLOB采用了4096字节的块大小,并使用"成组申请"算法来...

    基于Linux的BLOB文件系统的实现.pdf

    此外,BLOB文件系统可能还包含针对大文件的元数据管理优化,以便快速定位和访问文件的不同部分。 对比EXT2文件系统,EXT2是Linux早期广泛使用的文件系统,它支持文件权限、链接、日志记录等功能,但对大文件的处理...

    从mysql数据库中批量下载Blob图片到本地

    总结起来,批量下载MySQL数据库中Blob类型的图片至本地,需要理解Blob数据类型,熟悉Java的JDBC操作,以及掌握文件I/O操作。通过以上步骤,你可以有效地完成这一任务,确保图片数据的完整性和可访问性。在实际项目中...

Global site tag (gtag.js) - Google Analytics