系统采用的是HIBERNATE+SPRING进行数据的操作,开始一直采用HIBERNATE进行数据库的直连,用SPRING对ORACLE对BLOG字段进行处理,这两天打算采用PROXOOL对数据源进行管理,访问数据都没有问题,可对数据进行SAVEORUPDATE的时候报错如下:
occour a unkonw error from actionlocation OracleLobCreator needs to work on [oracle.jdbc.OracleConnection], not on [oracle.jdbc.internal.OracleConnection$$EnhancerByProxool$$10e3032b]: specify a corresponding NativeJdbcExtractor; nested exception is java.lang.ClassCastException: oracle.jdbc.internal.OracleConnection$$EnhancerByProxool$$10e3032b
想着应该是nativejdbcextractor的原因,在网上找了不少资料,终于搞明白了,原来在用SPRING配置处理BLOB(CLOB)字段时,不同版本的数据库,其NATIVEJDBCEXTRACTOR是不同的,我们用的是10G的数据,但原来的配置是
<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor" />
<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">
<property name="nativeJdbcExtractor">
<ref bean="nativeJdbcExtractor" />
</property>
</bean>
这种配置的方法是针对9i的,因为Oracle9i处理Clob的方式和别的数据库很不一样,甚至与Oracle10g都不兼容。
所以,正确的配置应该是
<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true"/>
轻松搞定,网上这方面的资料较少,真得在实际工作中慢慢积累经验呀:)
至于SPRING操作BLOG(CLOB)的方法,网上讲的较多,就不多说了,呵呵。加载PROXOOL与是相对比较容易的
hibernate.config.xml配置段如下:
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="hibernate.proxool.pool_alias">dbpool</property>
<property name="hibernate.proxool.xml">proxool.xml</property>
<property name="hibernate.connection.release_mode">auto</property>
<property name="hibernate.cglib.use_reflection_optimizer">true</property>
<property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.connection.autocommit">true</property>
proxool.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
<proxool>
<alias>dbpool</alias>
<driver-url>jdbc:oracle:thin:@dbip:1521:orcl</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="user"/>
<property name="password" value="pass"/>
</driver-properties>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<prototype-count>5</prototype-count>
<maximum-connection-count>100</maximum-connection-count>
<minimum-connection-count>10</minimum-connection-count>
</proxool>
</something-else-entirely>
分享到:
相关推荐
在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB...通过以上配置和操作,你可以在Spring和Hibernate的环境中顺利地对Oracle数据库的CLOB字段进行读写,满足J2EE应用中的大数据存储需求。
在这个名为“移动ssh项目(struts+spring+hibernate+oracle)”的压缩包中,我们可以看到一个利用这些技术构建的项目实例,结合Oracle数据库。以下是关于SSH框架及Oracle数据库的详细介绍: 1. Struts:Struts是MVC...
本文将详细介绍如何在Spring与Hibernate框架结合的情况下,有效地处理Oracle 10g数据库中的CLOB字段。 #### 一、环境配置 为了确保项目能够顺利运行,首先需要搭建好开发环境。本示例中使用的环境配置如下: 1. *...
Oracle 提供了丰富的 API 来操作 CLOB 类型的数据,例如读写 CLOB 数据等。 #### 2. Hibernate 配置与实体类设计 为了能够通过 Hibernate 来存取 CLOB 数据,我们需要对 Hibernate 进行相应的配置,并且合理地设计...
在本文中,我们将深入探讨如何在Java环境下,利用Spring和Hibernate框架处理Oracle数据库中的LOB(Large Object)字段。LOB字段通常用于存储大体积的数据,如文本、图片或视频。在实际开发中,处理这类数据时可能会...
一个完整的工程,主要功能为:spring+...包括:数据脚本、典型的SSH框架处理,以及spring、hibernate数据批量保存等功能源码、所用到的lib包 数据环境为:oracle 10G 开发:Mycelipse5.1 Spring1.2 Hibernate3.0;
Spring、SpringMVC、Hibernate和Oracle是Java开发中常见的四大技术框架,它们各自在软件开发中扮演着重要的角色。下面是对这些技术的详细介绍。 **Spring框架**:Spring 是一个全面的后端应用开发框架,核心特性是...
综上所述,这个实例展示了如何在Oracle数据库中使用Hibernate处理Blob数据,结合Uploadify实现文件上传。这种解决方案不仅适用于Oracle,理论上也适用于其他支持Blob类型的数据库,如MySQL和MSSQLServer。了解这些...
这个压缩包文件"spring1.2+hibernate3对大字段的处理实例"提供了一个具体的案例,演示了如何在Spring 1.2和Hibernate 3框架下解决这个问题。下面我们将深入探讨这些知识点。 首先,Spring 1.2是一个轻量级的Java...
4. **二级缓存**:虽然Spring1.2和Hibernate2的版本较旧,但它们仍然支持二级缓存,可以用来缓存大字段数据,提高访问效率。不过,需要注意的是,对于频繁修改的大字段,缓存策略需要谨慎设置,以免出现数据不一致...
这篇博客“使用Jdbc4操作Blob,Clob”将深入讲解如何利用JDBC4 API来处理Blob和Clob对象。 Blob通常用于存储二进制数据,如图片、音频或视频文件,而Clob则用于存储大量文本数据,如长篇的文本或XML文档。在JDBC4中...
由于Spring通过代理Hibernate完成数据层的操作,所以原Hibernate的配置文件hibernate.cfg.xml的信息也转移到Spring的配置文件中: 代码 4 Spring中有关Hibernate的配置信息 1. 2. !-- 数据源的配置 //--> 3. ...
- 在Spring或`hibernate.cfg.xml`配置文件中,可以使用宏定义或者条件注解来根据数据库类型加载不同的映射文件。这样,不同的数据库环境只需配置相应的连接参数,而无需修改核心的配置文件。 4. **大字段处理** -...
SSH、Struts、Spring和Hibernate等技术与Oracle的集成可以构建复杂的Web应用程序。SpringMVC、Spring和iBatis组合的SSI框架也是常见的Web开发架构。 配置Oracle监听器是连接数据库的关键步骤,监听器配置文件...
Spring框架是Java开发中不可或缺的一部分,它为应用程序提供了一个全面的基础设施,支持bean管理、依赖注入、AOP(面向切面编程)、数据访问、事务管理等。SpringMVC是Spring框架的一部分,专用于构建Web应用的Model...
它为开发者提供了丰富的标签库,使得在JSP页面上操作数据更加方便。Struts通过Action类来处理业务逻辑,并通过配置文件(struts-config.xml或struts.xml)定义各个Action的映射关系。 Spring是一个全面的企业级应用...
1. **模型(Model)**:包含业务对象和数据访问对象(DAO),使用Hibernate与Oracle数据库进行交互。 2. **视图(View)**:页面设计,可能使用JSP或HTML,展示用户界面,可以通过Struts的标签库来简化开发。 3. **...
处理BLOB 和 CLOB对象 11.7.3. 在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中创建 ...
处理BLOB 和 CLOB对象 11.7.3. 在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中创建 ...
再者,Hibernate作为持久层框架,简化了数据库操作,通过对象关系映射(Object-Relational Mapping,ORM)技术,将Java对象与数据库表进行绑定,使得开发者无需编写大量的SQL语句,就能完成数据的增删改查。...