在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(Binary Large Object)字段的读写操作。 首先,让我们理解C#访问Oracle数据库的基本原理。Oracle数据库提供了一个名为ODP.NET(Oracle ...
本篇文章将深入探讨如何在Delphi中对Oracle数据库的BLOB字段进行读写操作。 首先,你需要在Delphi项目中引入Oracle数据库访问的相关组件,如DBExpress或ADO。DBExpress是Delphi内置的一个轻量级数据库访问框架,而...
oracle中对blob字段的处理方法,包括增加,删除,修改,更新等操作。
Python如何操作Oracle的Blob字段,
Oracle数据库是广泛使用的数据库系统,它支持Blob类型的字段。Hibernate作为一款流行的ORM(对象关系映射)框架,提供了与Oracle数据库交互的简便方式,包括处理Blob数据。本文将详细介绍如何使用Hibernate和JDBC...
该方案使用JSP技术读取ORACLE数据库中的BLOB字段存储的坐标点,然后将坐标传递到JAVA类中显示图形。在图形的正中还显示了编号,充分展示了JSP结合JAVA应用的优势。 知识点1:JSP技术的应用 * JSP(Java Server ...
BLOB字段在数据库中以字节流的形式存在,可以进行读写操作。 要实现批量导出BLOB字段生成图片,通常需要以下步骤: 1. **安装Oracle Client**:Oracle Client是与Oracle服务器通信的客户端工具,它提供了与数据库...
当处理Blob类型的数据时,通常会使用Oracle提供的包`DBMS_LOB`来进行操作,因为它提供了丰富的函数和过程来读取、写入、拷贝以及处理Blob数据。 ### 2. JPEG格式的图片 JPEG(Joint Photographic Experts Group)...
这段代码将遍历`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字段...
Java对Oracle数据库中BLOB字段的处理涉及多个层面,包括读取、写入、更新以及跨数据库操作等。 ### Java处理Oracle BLOB字段的基本方法 #### 1. 读取BLOB字段 在Java中,读取Oracle数据库中的BLOB字段通常通过`...
本篇文章将详细探讨如何将ORACLE数据库中的BLOB(Binary Large Object)字段导入到SQL SERVER中的IMAGE字段,这通常涉及到数据转换、数据迁移以及可能的数据类型兼容性问题。 首先,让我们了解BLOB和IMAGE字段的...
### Oracle中BLOB字段的读取与操作 #### 一、引言 在数据库系统中,BLOB(Binary Large Object)是一种用于存储大量二进制数据的数据类型,例如图像、音频或视频文件等。在Oracle数据库中,BLOB类型特别适用于处理...
1. **Blob大小限制:** Oracle数据库对单个Blob字段的大小有限制,需要注意不要超过限制。 2. **性能考虑:** 大量的Blob数据读写可能会影响数据库性能,建议优化查询或考虑使用其他存储方案。 3. **安全性和备份:*...
### Java中读取Oracle数据库BLOB字段存储的图片方法详解 #### 一、背景与目的 在实际的应用开发过程中,经常会有将图片等二进制数据存入数据库的需求。Oracle数据库支持通过BLOB(Binary Large Object)类型来存储...
oracle 存读数据库的blob字段 .net有两种方式向Oracle的blob字段中存储图片:
使用 JAVA 读取 ORACLE BLOB 字段实现上传下载 BLOB(Binary Large Objects)是一种二进制大对象类型,常用于存储大对象,例如图形、声音等。我们可以将 BLOB 区分为三种形式:声像数据、二进制数据和大文本数据。...
在关系型数据库中,如Oracle、MySQL、SQL Server等,BLOB字段提供了一种高效的方式,用于处理和存储大数据量的非结构化信息。 ### 判断BLOB字段是否为空的必要性 在实际应用中,判断BLOB字段是否为空对于数据完整...
oracle中用来存储大数据的BLOB(图片,文本,文件等)的 读写与复制方法