`
zengbo0710
  • 浏览: 415260 次
社区版块
存档分类
最新评论

使用Spring+Hibernate实现Oracle数据库BlOB数据类型的读写

阅读更多

1。Spring配置

 <?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
 
<description>Dragon Framework</description>
 
<!-- Message source -->
 
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
  
<property name="basenames">
   
<list>
    
<value>webResources</value>
    
<value>appResources</value>
   
</list>
  
</property>
 
</bean>

 
<!-- //////////////////// Data source ////////////////////// -->
 
<!-- Oracle -->
 
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  
<property name="jndiName" value="java:comp/env/jdbc/dragon" />
 
</bean>
 
<!-- 
  <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource"
  destroy-method="close">
  <property name="driverClassName">
  <value>oracle.jdbc.driver.OracleDriver</value>
  </property>
  <property name="url">
  <value>jdbc:oracle:thin:@172.16.184.2:1521:oradb</value>
  </property>
  <property name="username">
  <value>fushun</value>
  </property>
  <property name="password">
  <value>111111</value>
  </property>
  </bean> 
 
-->
 
<!--Blob field hander for Oracle9i or Oracle10g-->
 
<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
  lazy-init
="true" />

 
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">
  
<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" />
 
</bean>

 
<!-- Hibernate Session Factory -->
 
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  
<property name="dataSource" ref="dataSource" />
  
<property name="lobHandler" ref="lobHandler" />
  
<property name="mappingDirectoryLocations">
   
<list>
    
<value>classpath:/com/longtop/po</value>
   
</list>
  
</property>
  
<property name="hibernateProperties">
   
<props>
    
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
    
<prop key="hibernate.show_sql">true</prop>
    
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
   
</props>
  
</property>
 
</bean>
 
<!-- IBatis Sql Map Client Factory -->
 
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  
<property name="configLocation" value="WEB-INF/sql-map-config.xml" />
  
<property name="dataSource" ref="dataSource" />
 
</bean>
 
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  
<property name="dataSource" ref="dataSource"></property>
 
</bean>

 
<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
  
<property name="sqlMapClient" ref="sqlMapClient"></property>
 
</bean>

 
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
  
<property name="sessionFactory" ref="sessionFactory" />
 
</bean>
 
<!-- Hibernate Transaction manager -->
 
<bean id="hibernateTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  
<property name="sessionFactory" ref="sessionFactory" />
 
</bean>

 
<bean id="jdbcTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  
<property name="dataSource" ref="dataSource" />
 
</bean>
</beans>

2。持久对象(PO)

持久对象中的BLOB对象类型为byte[]类型

3。获取页面传过来的文件

 

   SysUserPO user = new SysUserPO();
  
   
//1.获取Flower对象
   Flower flower =(Flower)SpringHelper.getBean("flower");
   
//2.解析request
   flower.parseRequest(request); 
   
//3.获取上传的文件
   FlowerRequest flowerRequest = flower.getFlowerRequest();  
   ArrayList flowerFileList 
= flower.getFlowerFileList();
   
if(flowerFileList.size()>0)...{
     
//将数字签名文件射入user对象
     for(Iterator iter = flowerFileList.iterator(); iter.hasNext();) ...{
       FlowerFile file 
= (FlowerFile)iter.next();
       
if(!file.getName().equals(""))
       
...{
         InputStream in 
= file.getInputStream();
         
byte[] data = new byte[in.available()];
         in.read(data);
         user.setEFileContent(data);
         user.setEFileName(System.currentTimeMillis()
+"."+file.getPostfix());
       }

     }

   }

4。用service保存

 

    public void saveUser(SysUserPO user) ...{
        hibernateTemplate.save(user);
        hibernateTemplate.flush();
    }
 

分享到:
评论

相关推荐

    struts+hibernate+spring+blob

    struts+hibernate+spring+blob 三个框架集成了一下,主要包括利用struts的上传附件功能,并把上传的图片存储到oracle的blob字段。并提供显示。 没做过多的限制,还有很多bug别见怪,功能跑得通!

    Spring+Hibernate处理Oracle lob字段(一)

    在Oracle数据库中,LOB字段主要有BLOB(Binary Large Object)和CLOB(Character Large Object)两种类型,分别用于存储二进制和字符数据。处理这些字段时,我们需要配置Hibernate的实体类和映射文件。 在实体类中...

    移动ssh项目(struts+spring+hibernate+oracle).zip

    在这个名为“移动ssh项目(struts+spring+hibernate+oracle)”的压缩包中,我们可以看到一个利用这些技术构建的项目实例,结合Oracle数据库。以下是关于SSH框架及Oracle数据库的详细介绍: 1. Struts:Struts是MVC...

    spring+hibernate操作oracle的clob字段

    在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB...通过以上配置和操作,你可以在Spring和Hibernate的环境中顺利地对Oracle数据库的CLOB字段进行读写,满足J2EE应用中的大数据存储需求。

    JDBC+Hibernate将Blob数据写入Oracle

    以下是对“JDBC+Hibernate将Blob数据写入Oracle”这一主题的深入解析。 ### JDBC与Oracle BLOB的交互 #### 1. 理解Oracle BLOB特性 在Oracle中,BLOB用于存储大量的二进制数据,如图像文件。与传统的文本或数字...

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

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

    spring mvc+hibernate 图片存储至blob

    总结起来,"spring mvc+hibernate 图片存储至blob"这个主题涉及到Spring MVC处理文件上传、Hibernate将图片数据存入数据库BLOB字段、以及前后端交互等多个技术点。通过理解这些知识点,开发者可以构建一个完整的图片...

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

    Oracle数据库在存储大对象(BLOB)数据时,提供了高效且灵活的方式,使得二进制数据如图片、文档等能够安全地保存在数据库中。批量导出Oracle数据库中的BLOB字段生成图片,是一项常见的需求,尤其对于那些需要将...

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

    Oracle数据库是全球广泛使用的大型企业级数据库管理系统,它支持多种数据类型,包括BLOB(Binary Large Object),用于存储图像、文档等二进制大对象。本教程将详细讲解如何批量导出Oracle数据库中的BLOB字段并生成...

    Struts+Spring+Hibernate实现上传下载

    综上所述,“Struts+Spring+Hibernate实现上传下载”是一个涵盖Web请求处理、业务逻辑控制、数据持久化以及文件操作等多个层面的综合实践,能够帮助开发者全面理解Java Web开发中的关键技术和最佳实践。

    spring+struts+hibernate实现文件的上传和下载

    【Spring+Struts+Hibernate 实现文件上传和下载】 在 J2EE 开发中,文件的上传和下载是一项基础但重要的功能。SSH(Struts、Spring、Hibernate)框架提供了便捷的方式来处理这一问题,无需依赖像 SmartUpload 或 ...

    使用hibernate对oracle读取blob

    综上所述,使用Hibernate和JDBC读取Oracle数据库中的Blob数据涉及多个步骤,包括实体类的设计、数据库操作和文件流的处理。理解这些知识点对于处理大对象存储至关重要。在实际项目中,根据需求和性能考虑,选择合适...

    Struts2 Hibernate存取Oracle数据库中的BLOB数据.pdf

    ### Struts2框架介绍 Struts2是一个基于Java语言...同时,对于未来技术选型,Oracle数据库推荐优先考虑使用CLOB和BLOB类型来存储大型数据,因为这些类型比LONG类型拥有更好的特性,例如更大的容量和更好的操作灵活性。

    struts2.1 + hibernate3.2 + spring 2.5 实现blob数据上传、下载

    - 使用Spring的DAO或Service层接口,通过Hibernate的Session对象将Blob对象插入到数据库对应的表中。这通常涉及到一个带有Blob参数的SQL语句,如`INSERT INTO table (id, blob_column) VALUES (?, ?)`,然后使用`...

    SSH框架 Struts+Spring+Hibernate+Ajax+功能齐全(验证码+二进制文件图片读写数据库)的网站.zip

    SSH框架,全称为Struts+Spring+Hibernate,是Java Web开发中的一个经典组合,用于构建高效、可扩展的web应用程序。这个压缩包文件包含了使用SSH框架实现的一个功能丰富的网站项目,其中包括了验证码验证、二进制文件...

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

    * BLOB(Binary Large OBject)是一种数据库字段类型,用于存储二进制数据,如图片、音频、视频等。 * ORACLE数据库的BLOB字段可以存储大量的二进制数据,且性能优于LONG字段。 知识点3:坐标点的存储和读取 * 在...

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

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

Global site tag (gtag.js) - Google Analytics