`
yangmeng_3331
  • 浏览: 91661 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

向Oracle中插入BLOB类型

阅读更多
使用s2sh框架。实体类:
public class Photo implements java.io.Serializable {

	// Fields

	private Integer id;
	private Album album;
	private Timestamp createtime;
	private String name;
	private String contentType;
	private Blob thumbnail;
	private Blob content;
	private Integer orderid;
	private List<Mark> facelookmarks = new ArrayList<Mark>();
	private Set facelookactivities = new HashSet(0);
	private List<Comment> facelookcomments = new ArrayList<Comment>();
}

Photo.hbm.xml
<property name="content" type="java.sql.Blob">
            <column name="CONTENT" />
        </property>
        <property name="thumbnail" type="java.sql.Blob">
            <column name="THUMBNAIL" />
        </property>

action
FileInputStream fis = new FileInputStream(this.photoUpload);
			ByteArrayOutputStream out = new ByteArrayOutputStream();
			byte[] b = new byte[1024];
			int n;
			while ((n=fis.read(b)) != -1) {
				out.write(b,0,n);
			}
			fis.close();
			out.close();
			byte[] content = out.toByteArray();
this.photo.setAlbum(this.album);
			this.photo.setContentType(this.photoUploadContentType);
			this.photo.setCreatetime(new Timestamp(System.currentTimeMillis()));
			this.photo.setOrderid(orderId);
			this.photo.setContent(Hibernate.createBlob(content));
			this.photo.setThumbnail(Hibernate.createBlob(thumbnail));

    this.photoUpload为上传的文件。将得到的byte[]数组通过Hibernate.createBlob方法赋值给content和thumbnail属性。
PhotoDAO
getSession().save(photo);
getSession().flush();// 调用flush方法,强制Hibernate立即执行insert sql
getSession().refresh(photo, LockMode.UPGRADE);// 通过refresh方法,强制Hibernate执行select for update

   这样在hibernate中就讲图片插入到数据库中了。
在JDBC中,需要先把BLOB字段插入空值,通过oracle.sgl.BLOB.empty_lob()方法构造空Blob对象。再次从库表读出,获得Blob句柄,然后将byte[]数组写入blob。
分享到:
评论

相关推荐

    oracle中的BLOB(照片)转换到mysql中

    总结来说,从Oracle的BLOB类型字段中提取并转换到MySQL的过程涉及到查询、导出、上传等多个步骤。在实际操作中,需要对数据库API有深入理解,并注意数据的兼容性和性能优化。通过以上方法,你可以顺利地在两个数据库...

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

    在IT领域,尤其是在Java开发与Oracle数据库交互的过程中,处理BLOB(Binary Large Object)类型字段是一项常见且重要的任务。BLOB字段主要用于存储大量的二进制数据,如图像、音频、视频或任何其他非文本格式的数据...

    oracle blob转文件读取

    ### Oracle Blob类型转换为文件读取的相关知识点 ...通过以上内容,我们可以了解到如何在C#中实现Oracle数据库中Blob类型的读取和保存操作。这对于处理数据库中的多媒体文件等二进制数据非常有用。

    mysql oracle 插入blob数据实例源码

    本篇文章将深入探讨如何在MySQL和Oracle数据库中插入Blob数据,并提供相关的源码实例。 一、MySQL中的Blob数据插入 MySQL提供了多种方式插入Blob数据,包括使用PreparedStatement接口。以下是一个Java源码示例: ...

    oracle中读取blob字段.doc

    在Oracle数据库中,BLOB类型特别适用于处理大容量的非结构化数据。本文档将详细介绍如何在Oracle数据库中读取BLOB字段,并通过示例代码展示具体的实现过程。 #### 二、创建包含BLOB字段的表 为了演示如何在Oracle中...

    向orcale数据库中插入blob类型的数据,插入一张图片的示例

    向orcale数据库中插入blob类型的数据,插入一张图片的示例,由于本人在完成时遇到了很多问题,最终解决了,于是整理下来,方便学习交流

    如何将DB2数据库中的大对象(BLOB,CLOB)数据类型复制到Oracle数据库中

    本例中,我们讨论如何将DB2数据库中的BLOB数据类型复制到Oracle数据库。 1. **BLOB与CLOB数据类型**: BLOB(Binary Large Object)存储二进制大对象,如图像、音频或视频文件。CLOB(Character Large Object)...

    Mybatis 处理 CLOB、BLOB 类型数据

    在 Oracle 数据库中,BLOB 类型对应的数据库类型是 BLOB,在 MySQL 中对应的类型是 BLOB。 MyBatis 提供了对 CLOB 和 BLOB 类型的内置支持,通过将 CLOB 类型映射到 Java 的 String 类型,BLOB 类型映射到 byte[] ...

    使用JDBC4.0操作Oracle中BLOB类型的数据方法

    在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...

    oracle中的Blob和Clob区别

    在Oracle数据库中,`BLOB`(Binary Large Object)和`CLOB`(Character Large Object)是用于存储大量数据的两种特殊数据类型。这两种类型都属于`LOB`(Large Object)类别,主要用于处理大数据量的存储问题。 ####...

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

    在C#中,我们使用`OracleDbType.Blob`类型来处理Blob字段。读取Blob字段时,可以创建一个`OracleBinary`对象,然后使用`GetValue`方法获取Blob数据。写入Blob字段时,先创建`OracleParameter`对象,将其Direction...

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

    插入Blob数据到Oracle数据库通常涉及以下步骤: 1. **创建表结构**:首先,你需要创建一个包含Blob列的表。例如: ```sql CREATE TABLE images ( id NUMBER PRIMARY KEY, image BLOB ); ``` 2. **读取二进制...

    oracle blob 字段 读写 delphi

    Oracle数据库中的BLOB(Binary Large Object)字段是用来存储大量二进制数据的,例如图片、文档或音频文件。在Delphi编程环境中,处理这类数据时需要掌握特定的API调用和方法。本篇文章将深入探讨如何在Delphi中对...

    oracle中blob 字段类型的应用

    Oracle中的Blob字段类型是用于存储大量二进制数据的数据类型,比如图像、音频或大型文档。Blob代表Binary Large Object,其最大容量可达4GB。在Oracle数据库中,Blob与Clob(Character Large Object)、Bfile和Nclob...

    Oracle中Blob字段的写入处理

    此文档是对于oracle数据库中blob类型字段二进制大对象的读取和解析

    oracle Blob

    Oracle中的Blob类型是一种用于存储大型二进制对象的数据类型,如图像、音频或视频文件等。Blob相比于long字段,提供了更好的性能,特别是处理大量非结构化数据时。Blob的使用涉及多个步骤,包括创建、插入、读取和...

    Python如何操作Oracle的Blob字段

    Python如何操作Oracle的Blob字段,

    JAVA操作Oracle blob类型

    在Java编程中,Oracle数据库中的BLOB(Binary Large Object)类型用于存储大量的二进制数据,如图片、视频或文档。这篇博客文章“JAVA操作Oracle blob类型”将深入探讨如何在Java应用程序中有效地管理和操作Oracle...

    blob_oracle.rar_blob_blob oracle_c++ oracle blob_oracle_oracle

    4. **插入BLOB数据**:使用`OCIBlobOpen`打开BLOB对象,然后调用`OCIBlobWrite`将二进制数据写入BLOB字段。这可能涉及从文件读取数据,例如"www.pudn.com.txt"或"row.txt"。 5. **执行SQL语句**:使用`OCIParse`...

    在Oracle中存取BLOB对象实现文件的上传和下载.txt

    在Oracle数据库中,BLOB数据类型用于存储不定长度的二进制数据,最大可以达到4GB。 #### 二、文件上传至Oracle BLOB字段 **1. 直接操作数据库:** 对于直接与Oracle数据库交互的情况,可以采用以下步骤实现文件的...

Global site tag (gtag.js) - Google Analytics