import java.sql.Blob;
import net.sf.hibernate.*;
import oracle.sql.*;
import java.io.*;
public class TestCatHibernate {
public static void testBlob() {
Session s = null;
byte[] buffer = new byte[];
buffer[0] = 1;
try {
SessionFactory sf = HibernateSessionFactory.getSessionFactory();
s = sf.openSession();
Transaction tx = s.beginTransaction();
Cat c = new Cat();
c.setName("Robbin");
c.setImage(Hibernate.createBlob(buffer));
s.save(c);
s.flush();
s.refresh(c, LockMode.UPGRADE);
BLOB blob = (BLOB) c.getImage();
OutputStream out = blob.getBinaryOutputStream();
String fileName = "oraclejdbc.jar";
File f = new File(fileName);
FileInputStream fin = new FileInputStream(f);
int count = -1, total = 0;
byte[] data = new byte((int)fin.available());
fin.read(data);
out.write(data);
fin.close();
out.close();
s.flush();
tx.commit();
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
if (s != null)
try {
s.close();
} catch (Exception e) {}
}
}
}
分享到:
相关推荐
在Java开发中,Blob(Binary Large Object)类型用于存储大对象,如图片、音频或视频文件等。Oracle数据库是广泛使用的数据库系统,它支持Blob类型的字段。Hibernate作为一款流行的ORM(对象关系映射)框架,提供了...
在Oracle数据库中,BLOB类型的字段具有特殊的处理方式,尤其在使用JDBC(Java Database Connectivity)和Hibernate框架时,需要特别注意其写入过程。以下是对“JDBC+Hibernate将Blob数据写入Oracle”这一主题的深入...
通过Struts2与Hibernate框架的结合,开发者可以构建稳定高效的Web应用,特别是在涉及到需要存储和展示二进制大对象(BLOB)数据的场景中,这种集成方案能够充分发挥各自框架的优势,简化数据库操作,提升开发效率和...
Blob则用于存储二进制大对象,比如图片、视频或者文档。在Oracle JDBC驱动中,Oracle提供了一套完善的API来创建、读取和更新Clob和Blob对象。 在Hibernate中,我们可以通过以下方式处理Clob和Blob字段: 1. **映射...
例如,Oracle和MySQL在处理大对象时有各自的API和策略。 总结,Hibernate通过`@Lob`注解支持BLOB和CLOB的持久化,开发者需要适当地将数据转换为对应的对象类型,然后使用Hibernate的CRUD操作进行保存和检索。同时,...
Blob(Binary Large Object)是Oracle用来存储大对象数据的类型,它可以高效地处理大量的二进制数据,比long字段更适合此类任务。 要将Blob型数据写入Oracle数据库,我们可以使用两种常见的技术:JDBC(Java ...
在Java的持久化框架Hibernate中,Blob类型常用于存储大对象(Large Object),如图片、音频、视频或大型文本文件等。本篇文章将深入探讨如何使用Hibernate读取数据库中的Blob字段,以及涉及到的相关知识点。 首先,...
- 插入数据:在保存实体时,Hibernate会自动处理Clob和Blob对象的序列化。可以通过`getClob()`和`setClob()`方法设置和获取Clob值,对于Blob,使用`getBlob()`和`setBlob()`。 - 更新数据:同样,更新实体时,...
在处理数据库操作时,经常需要存储二进制大对象(Binary Large Object,简称 BLOB),例如图像、视频等非文本数据。BLOB 类型是数据库系统中用于存储大量二进制数据的数据类型。在 Java 应用开发中,尤其是使用 ORM ...
Blob(Binary Large Object)是数据库中用于存储二进制大对象的类型,常用于存储图片、音频、视频等文件。 首先,我们来看`Learner`类,这是Java对象的映射,代表了数据库中的`LEARNER`表。`Learner`类包含学员的...
这篇文档“Hibernate-Oracle-MySQL-image.rar_oracle”聚焦于使用Hibernate处理Oracle和MySQL数据库中的二进制大对象(Blob),特别关注如何存储和检索图片文件。Blob类型常用于存储大型数据,如图像、音频或视频...
在Java的持久化框架Hibernate中,BLOB和CLOB是用来处理大数据对象(Binary Large Object和Character Large Object)的。这两个类型常用于存储图像、视频、大文本等数据,因为它们可以容纳超过数据库标准列大小限制的...
此外,JPA(Java Persistence API)和 Hibernate 等 ORM(对象关系映射)框架也可以便捷地处理 BLOB 数据。 文件 `clearFile.js` 可能是 JavaScript 文件,这通常用于前端或者Node.js环境中的数据操作。在...
1. 大对象数据处理可能消耗较多资源,因此在处理完后要及时关闭Session和连接,避免内存泄漏。 2. 考虑到性能和存储成本,对于大量图片的存储,通常会考虑使用文件系统或云存储服务,只在数据库中存储图片的URL或元...
首先,Oracle数据库的BLOB字段提供了对大对象的高效存储,它的性能优于LONG字段,尤其适合存储大容量的二进制数据。在JDBC中,我们通常需要经过几个步骤来写入BLOB字段: 1. **建立连接**:使用`DriverManager.get...
这确保了Spring和Hibernate能够正确地与Oracle数据库交互处理大对象。 ```xml <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> ... ``` 2. **定义...