`
pingchajava
  • 浏览: 30313 次
  • 性别: Icon_minigender_1
  • 来自: 常德
社区版块
存档分类
最新评论

用Hibernate 对 Oracle9i Blob字段的读写

阅读更多

在oracle 中 ,有时varchar2 类型不能满足对字段的存储,这就需要 用  大类型数据存储

  如:  blob  

 

hibernate 对blob 字段操作步骤如下:

 

   1、在java Bean 中 定义一字段

 

public class NewsEntry {

 

      private Blob contents2 ;

   private String content;

 

    ... get ,set 方法 (省略不写)

 

}

 2、写映射文件

 

  

<property

            name="contents2"

            update="true"

            insert="true"

            access="property"

            type="java.sql.Blob"   // 类型必须是这样的

            column="CONTENT"

        />

 

 

  

 

3、把字符串写入blob 并同步到数据库

 

public void save() throws Exception {

       OutputStream out;

       try {

           NewsEntry entry = new  NewsEntry ();

           entry.setContents2(Hibernate.createBlob(new byte[1]));

           entry.setContent("你好");

           session.save(entry);

           session.flush();// 强制执行insert

           // 通过refresh方法,强制Hibernate执行select for update

           session.refresh(entry, LockMode.UPGRADE);

           // Blog写入实际内容

           BLOB blob = (BLOB) entry.getContents2();

           out = blob.getBinaryOutputStream();

           byte [] buf = new byte[1];

           if (entry != null) {

              buf = entry.getContent()== null ? null:entry.getContent().getBytes("gbk");

           }

           out.write(buf);

           out.close();

       } catch (RuntimeException e) {

           throw new Exception(e);

       }

       

    }

 

 

 通过这几步就可以把字符串写入到blob 字段中并 同步到数据库

 

 

 

4 、读出Blob 字段的数据

 

 

 public NewsEntry loadNews(long id) throws Exception {

       NewsEntry entry = this.getNewsFromDB(id);

       StringBuffer sb = new StringBuffer();

       // 这个是blob类型的代码

       byte[] content = new byte[1];

       if (entry != null) {

           Blob contents2 = entry.getContents2();

           if (contents2 != null) {

              int len = (int) contents2.length();

              content = new byte[len];

              InputStream input = contents2.getBinaryStream();

              input.read(content,0,len);

           }

       }

       return entry;

    }

 

 

 

分享到:
评论

相关推荐

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

    本篇文章将深入探讨如何使用C#语言访问Oracle数据库,并重点讲解处理Blob(Binary Large Object)字段的读写操作。 首先,让我们理解C#访问Oracle数据库的基本原理。Oracle数据库提供了一个名为ODP.NET(Oracle ...

    oracle blob 字段 读写 delphi

    本篇文章将深入探讨如何在Delphi中对Oracle数据库的BLOB字段进行读写操作。 首先,你需要在Delphi项目中引入Oracle数据库访问的相关组件,如DBExpress或ADO。DBExpress是Delphi内置的一个轻量级数据库访问框架,而...

    oracle中对blob字段的处理方法

    oracle中对blob字段的处理方法,包括增加,删除,修改,更新等操作。

    Python如何操作Oracle的Blob字段

    Python如何操作Oracle的Blob字段,

    使用hibernate对oracle读取blob

    Oracle数据库是广泛使用的数据库系统,它支持Blob类型的字段。Hibernate作为一款流行的ORM(对象关系映射)框架,提供了与Oracle数据库交互的简便方式,包括处理Blob数据。本文将详细介绍如何使用Hibernate和JDBC...

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

    该方案使用JSP技术读取ORACLE数据库中的BLOB字段存储的坐标点,然后将坐标传递到JAVA类中显示图形。在图形的正中还显示了编号,充分展示了JSP结合JAVA应用的优势。 知识点1:JSP技术的应用 * JSP(Java Server ...

    批量导出ORACLE数据库BLOB字段生成图片

    BLOB字段在数据库中以字节流的形式存在,可以进行读写操作。 要实现批量导出BLOB字段生成图片,通常需要以下步骤: 1. **安装Oracle Client**:Oracle Client是与Oracle服务器通信的客户端工具,它提供了与数据库...

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

    当处理Blob类型的数据时,通常会使用Oracle提供的包`DBMS_LOB`来进行操作,因为它提供了丰富的函数和过程来读取、写入、拷贝以及处理Blob数据。 ### 2. JPEG格式的图片 JPEG(Joint Photographic Experts Group)...

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

    这段代码将遍历`photos`表,对每一行提取BLOB数据,然后使用UTL_FILE包创建一个本地文件,将BLOB内容写入。确保你有权限访问指定的本地目录,并且该目录存在。 在实际应用中,你可能需要根据具体需求调整这个脚本,...

    delphi读写BLOB字段

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

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

    Java对Oracle数据库中BLOB字段的处理涉及多个层面,包括读取、写入、更新以及跨数据库操作等。 ### Java处理Oracle BLOB字段的基本方法 #### 1. 读取BLOB字段 在Java中,读取Oracle数据库中的BLOB字段通常通过`...

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

    本篇文章将详细探讨如何将ORACLE数据库中的BLOB(Binary Large Object)字段导入到SQL SERVER中的IMAGE字段,这通常涉及到数据转换、数据迁移以及可能的数据类型兼容性问题。 首先,让我们了解BLOB和IMAGE字段的...

    oracle中读取blob字段.doc

    ### Oracle中BLOB字段的读取与操作 #### 一、引言 在数据库系统中,BLOB(Binary Large Object)是一种用于存储大量二进制数据的数据类型,例如图像、音频或视频文件等。在Oracle数据库中,BLOB类型特别适用于处理...

    Oracle blob字段上传下载

    1. **Blob大小限制:** Oracle数据库对单个Blob字段的大小有限制,需要注意不要超过限制。 2. **性能考虑:** 大量的Blob数据读写可能会影响数据库性能,建议优化查询或考虑使用其他存储方案。 3. **安全性和备份:*...

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

    ### Java中读取Oracle数据库BLOB字段存储的图片方法详解 #### 一、背景与目的 在实际的应用开发过程中,经常会有将图片等二进制数据存入数据库的需求。Oracle数据库支持通过BLOB(Binary Large Object)类型来存储...

    oracle存取图片blob字段

    oracle 存读数据库的blob字段 .net有两种方式向Oracle的blob字段中存储图片:

    使用JAVA读取ORACLE_BLOB字段实现上传下载.doc

    使用 JAVA 读取 ORACLE BLOB 字段实现上传下载 BLOB(Binary Large Objects)是一种二进制大对象类型,常用于存储大对象,例如图形、声音等。我们可以将 BLOB 区分为三种形式:声像数据、二进制数据和大文本数据。...

    判断blob字段是否为空

    在关系型数据库中,如Oracle、MySQL、SQL Server等,BLOB字段提供了一种高效的方式,用于处理和存储大数据量的非结构化信息。 ### 判断BLOB字段是否为空的必要性 在实际应用中,判断BLOB字段是否为空对于数据完整...

    oracle blob的读写(plsql)

    oracle中用来存储大数据的BLOB(图片,文本,文件等)的 读写与复制方法

Global site tag (gtag.js) - Google Analytics