`

Hibernate往oracle数据中插入blob类型的文件

阅读更多
Blob类型是一个二进制格式的类型。
http://baike.baidu.com/link?url=Qsh_DL70A6q2CDvAmAx3l66XgwwjAX63wmiEYN1CPqtaxg1AesIv2gpZ_oY5QM4sp-BPo5p14-tTdViz5E8kT_


通过hibernate我们可以将输入流转换转换成java.sql.Blob类型对象。

具体如下:

public class HibernateTest
{
	private static SessionFactory sessionFactory;
	
	private static ServiceRegistry sr;
	
	static 
	{
		try{
			
			Configuration con=new Configuration().configure();
			
			sr=new ServiceRegistryBuilder().applySettings(con.getProperties()).buildServiceRegistry();
			
			sessionFactory=con.buildSessionFactory(sr);
			
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}
	
	
	public static void main(String[] args) throws IOException
	{	
		
		 
		
		
		People people=new People();
		
		
		InputStream is=new FileInputStream("d:/newfile.jpg");
		
		int length=is.available();
		
		byte[] buffer=new byte[length];
		
		is.read(buffer);
		
	
		
	
		
		
		
		Session session=sessionFactory.openSession();
		
		Transaction tx=null;
		people.setFile(session.getLobHelper().createBlob(buffer));
		
		
		tx=session.beginTransaction();
		
		
	
		
		
		session.save(people);
		
		
		session.flush();
		
		 
		tx.commit();
		
		
		
		
		

		
		
		
		
	}
}



People类中声明一个Blob对象,
private Blob file;

再通过session创建 org.hibernate.LobHelper对象,来完成这一存储过程就行。
分享到:
评论

相关推荐

    JDBC+Hibernate将Blob数据写入Oracle

    随后,通过读取本地文件(本例中是"oraclejdbc.jar")的数据,将其写入到BLOB中。这里值得注意的是,写入数据前后的事务控制,使用`conn.setAutoCommit(false)`关闭自动提交,确保所有操作作为一个完整的事务处理,...

    使用JDBC和Hibernate来写入Blob型数据到Oracle中

    在Java开发中,有时我们需要存储二进制大数据,如图片、视频或文档,这时Oracle数据库中的Blob类型就显得尤为重要。Blob(Binary Large Object)是Oracle用来存储大对象数据的类型,它可以高效地处理大量的二进制...

    hibernate对Blob类型字段进行数据添加.txt

    ### Hibernate 对 Blob 类型字段进行数据添加 #### 知识点概述 在处理数据库操作时,经常需要存储二进制大对象(Binary Large Object,简称 BLOB),例如图像、视频等非文本数据。BLOB 类型是数据库系统中用于存储...

    Hibernate操作Oarcle中Clob、Blob字段小结

    这篇博客文章“Hibernate操作Oracle中Clob、Blob字段小结”可能会探讨如何在Hibernate中有效地处理这两种类型的数据。 1. **Clob与Blob的理解**: - Clob:Clob是用于存储大量字符数据的类型,例如长篇文章、XML...

    关于在Hibernate中对于Clob,Blob字段的处理方法

    在Oracle数据库中,Hibernate提供了与这些数据类型的交互方式。本篇将详细介绍在Hibernate中如何处理Clob和Blob字段,以及使用特定Oracle JDBC驱动程序的优势。 首先,Hibernate通过`org.hibernate.type`包中的`...

    hibernate向oracle插入图片

    【标题】:“Hibernate向Oracle插入图片”的实现方法与步骤 在Java开发中,有时我们需要将图片数据存储到数据库中,特别是在构建支持用户上传图片的Web应用时。Oracle数据库是常用的数据库系统之一,而Hibernate...

    jdbc+hibernate存取blob字段

    这种数据通常会被存储在BLOB(Binary Large Object)类型的字段中。本篇将详细介绍如何使用JDBC(Java Database Connectivity)与Hibernate框架来操作Oracle数据库中的BLOB字段。 首先,Oracle数据库的BLOB字段提供...

    详解jdbc实现对CLOB和BLOB数据类型的操作

    在数据库中,存在两种类型的数据:CLOB(Character Large OBject)和BLOB(Binary Large OBject),它们用于存储大型数据,如文本、图片、音频、视频等。对CLOB和BLOB数据类型的操作是非常重要的,特别是在使用Java...

    java将图片写入数据库,并读出来(blob clob)

    这个过程通常涉及到Blob和Clob数据类型,它们是Java中的两种特殊对象,用于存储大对象(LOB)。Blob用于存储二进制数据,如图片、音频或视频文件,而Clob则用于存储字符数据,比如长文本。以下是如何使用Java处理...

    【IT十八掌徐培成】Java基础第24天-01.Blob字段操作.zip

    1. **插入Blob数据**: 在Java中,我们需要先创建一个Blob对象,然后将其设置为PreparedStatement的参数。这通常涉及到读取本地文件并将其转换为字节数组,然后调用PreparedStatement的setBlob方法。例如: ```...

    解析使用jdbc,hibernate处理clob/blob字段的详解

    在Java的数据库操作中,`CLOB`和`BLOB`是用于存储大对象(Large Object)的数据类型,分别用于存储字符数据和二进制数据。这篇文章主要讲解了如何使用`JDBC`和`Hibernate`这两种不同的方式来处理`CLOB`和`BLOB`字段...

    使用Jdbc4操作Blob,Clob

    Blob通常用于存储二进制数据,如图片、音频或视频文件,而Clob则用于存储大量文本数据,如长篇的文本或XML文档。在JDBC4中,处理LOB对象变得更为直接和高效,主要归功于新增的`java.sql.Blob`和`java.sql.Clob`接口...

    仿hibernate动态生成sql保存对象

    在实现过程中,`Oracle字段映射动态`可能指的是针对Oracle数据库的特殊处理,例如Oracle的CLOB和BLOB类型映射,或者考虑Oracle特有的数据类型和特性。确保你的解决方案能适配不同的数据库系统,因为它们可能有不同的...

    spring1.2+hibernate3对大字段的处理实例,供大家学习与交流,可直接运行

    4. **BLOB/CLOB处理**:在Hibernate中,BLOB用于存储二进制大数据,CLOB用于存储字符大数据。在配置实体类时,可以指定对应的字段为这些类型。 5. **批处理**:在进行大量大字段操作时,可以使用批处理更新或插入,...

    java大对象

    Java大对象(Large Object,简称LOB)是Java数据库连接(JDBC)中用来处理大量数据类型的一个概念,尤其适用于存储图像、音频、视频、文本文件等非结构化数据。在Java编程中,大对象主要涉及到Blob(Binary Large ...

    Struts2.1.6实战课件精解_02

    本教程还提供了一个综合案例,演示如何从Excel文件中读取数据并批量插入数据库,同时调用存储过程进行分页查询。这涉及到使用JXL库读取Excel文件、创建序列和表、配置JNDI、创建工程和公用组件、DAO层、Service层、...

    oracle入门基础教程全面详细

    - **物理文件**:了解数据文件、重做日志文件、控制文件等物理文件的作用。 - **后台进程**:学习SMON、PMON等后台进程的功能。 #### 十二、DDL(改变表结构) - **创建表**:学习CREATE TABLE语句的使用。 - **修改...

Global site tag (gtag.js) - Google Analytics