`
jiangpan
  • 浏览: 53798 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

Struts2.0 (struts2 hibernate spring)文件上传 blob

阅读更多
    最近在项目中第一次使用 struts2,在将文件上传到数据库(oracle9i)中时,出现了一个奇怪的问题,就是当上传的文件比较小时(先这样说,因为没有查阅相关文档也没有测试这个值为多少),可以正常上传到数据库中,但当我上传了一个为300多K的图片是出现如下错误:
     不允许的操作: streams type cannot be used in batching
    在网上查阅时,有个哥们做出了如下解释:
    
引用
近日程序的数据库转为oracle 在操作blob类型时报以下错误:不允许的操作: streams type cannot be used in batching。经过查找多方面的资料查证Oracle JDBC不允许流操作以批量方式执行(Oracle CLOB采用流机制作为数据读写方式)。 只需在spring配置文件中更改hibernate jdbc.batch_size为0即可。
    
<bean id="oracleSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">   
        <property name="dataSource">   
            <ref bean="oracleDataSource"/>   
        </property>   
        <property name="hibernateProperties">   
            <props>   
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>   
                <prop key="connection.provider_class">   
                    org.hibernate.connection.C3P0ConnectionProvider   
                </prop>   
                <prop key="hibernate.show_sql">true</prop>   
                <prop key="hibernate.cache.use_query_cache">true</prop>   
                <prop key="hibernate.cache.provider_class">   
                    org.hibernate.cache.EhCacheProvider   
                </prop>   
                <prop key="hibernate.jdbc.batch_size">0</prop>   
            </props>   
        </property>  


     以上引用出处:http://hsyd.iteye.com/blog/320579
     我添加后,又出现了新的问题:
      org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed
     很是郁闷,网上查了很多,大多都是在说要先save一个空值,然后update,我试了一下,总感觉在ssh架构中,不太好实现,所以都未能解决问题,估计我的功力还不够,呵呵,但我在网上看到说:
    
引用
用oracle10G带的jdbcdriver,clob可以直接读写了

     所以我就想如果我用oracle10G带的jdbcdriver,是不是也能够直接读写blob类型的呢?我试了一下,欣喜若狂。。。,终于解决了,现分享给为此困惑的同行。
      顺便说明一下,我以前用的oracle驱动是class12.jar,我从网上下了10g的驱动,名称为:ojdbc14.jar,现作为附件供大家方便下载。
    
分享到:
评论
1 楼 Roger110 2012-08-31  
十分感谢,找了一天,终于解决了!

相关推荐

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

    Struts2.1、Hibernate3.2和Spring 2.5是Java开发中经典的MVC框架组合,它们各自承担着不同的职责。Struts2作为控制层,负责处理用户请求并调度业务逻辑;Hibernate则作为持久层框架,处理数据库操作;而Spring作为...

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

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

    Struts2,Hibernate3,Spring2实现oracle存取blob字段(图片等二进制文件)(原来2分的,现在免费了!!给评分哦!!)

    Struts2,Hibernate3,Spring2实现oracle存取blob字段(图片等二进制文件) Myeclipse6.0下开发 哈哈,原来2分的,现在免费了!!!!!!!!!!!!!!!!!!!!!!!!给评分哦!!!!!!!!!!!!!!!!

    struts+hibernate+spring+blob

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

    Struts+Spring+Hibernate实现上传下载

    在这个“Struts+Spring+Hibernate实现上传下载”的项目中,我们将深入探讨如何整合这三个框架来实现文件的上传与下载功能。 1. **Struts框架**:Struts是MVC(Model-View-Controller)设计模式的一种实现,主要用于...

    Struts+Spring+Hibernate开发实例祥解

    2. Struts接收到请求,将上传的文件封装到FormFile对象中。 3. 控制器调用业务层服务处理文件,这里可能涉及到Spring的AOP(面向切面编程)进行事务管理。 4. 业务层服务通过Hibernate将文件内容存入数据库,利用...

    Struts Spring Hibernate实现上传下载

    通过SSH框架实现文件上传下载,我们可以充分利用它们的特性,如Struts的MVC模式处理请求,Spring的IoC和AOP管理依赖,以及Hibernate的ORM简化数据库操作。这种解决方案既保证了代码的简洁性,也提高了项目的可维护性...

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

    - src目录:包含项目的源代码,包括Struts的Action类、Spring的配置文件和服务接口实现、Hibernate的实体类以及DAO(数据访问对象)。 - WEB-INF目录:内有web.xml文件,定义了Web应用的配置,包括Struts和Spring的...

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

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

    使用Struts2上传图片存取到Mysql中并读取出来显示在页面上_好资源0分送

    2. **相关知识储备**:熟悉Struts2的文件上传与表单验证机制、使用Annotation整合SSH(Spring、Struts2、Hibernate)的技术、以及自定义Struts2表单验证后错误信息的显示格式等。 #### 数据库设计与创建 为了实现...

    对blob大数据的操作——图片上传与显示*(自己实践可用)

    在XX.hbm.xml文件中,我们需要将图片类型的列属属性类型改成type="org.springframework.orm.hibernate3.support.BlobByteArrayType",因为采用Hibernate转换时会自动将Blob类型转换成String类型。在Bean中,我们需要...

    strut2 文件的上传于下载

    在"strut2 文件的上传于下载"这个主题中,我们将深入探讨如何利用Struts2框架处理文件的上传与下载功能,并结合SSH框架(Struts2、Spring和Hibernate)和MySQL数据库来实现一个完整的解决方案。 首先,我们来理解...

    ssh文件上传

    总结来说,"ssh文件上传"项目涵盖了Struts2的Action处理、Hibernate的数据存储、Spring的依赖注入,以及Java基础的文件上传操作。这个简单的框架可以作为扩展的基础,用于构建更复杂的文件管理系统,如支持多文件...

    ssh(structs,spring,hibernate)框架中的上传下载

    Struts+Spring+Hibernate实现上传下载    本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序。SSH各框架的均为当前最新版本:  •Struts 1.2  •Spring 1.2.5  •Hibernate 3.0  本文...

    ssh上传下载文件到oracle

    总之,实现SSH框架上传文件到Oracle并从Oracle下载文件到本地,需要结合Spring的文件上传支持、Struts2的Action处理、Hibernate的ORM功能以及Oracle数据库的操作,确保各个组件协同工作,完成文件的存取操作。...

    SSH实现文件上传和下载

    在 Hibernate 持久化映射文件中,Blob 字段的类型为 org.springframework.orm.hibernate3.support.BlobByteArrayType,即 Spring 所提供的用户自定义的类型。 在 Spring 中使用 org.springframework.jdbc.support....

Global site tag (gtag.js) - Google Analytics