`
leng_cn
  • 浏览: 298076 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于HIBERNATE+SPRING操作ORACLE的BLOG(CLOB)数据的问题

阅读更多
    我们的系统采用的是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>


有了上述的操作,基本上都能搞定了:)
分享到:
评论

相关推荐

    spring+hibernate操作oracle的clob字段

    J2EE开发中,经常会遇到存储大文本的文字信息,而oracle数据库的vachar字段最大能存储4000个字节,存储更大的信息必须使用clob或blob字段,本文档就是针对j2ee开发中对colb字段操作的实现。

    spring+hibernate 解决大字段(clob)

    是我自己验证过的 用的是oracle10数据库 文件里面有具体的配置。

    spring+hbernate对clob、blob字段的处理

    一个完整的工程,主要功能为:spring+...包括:数据脚本、典型的SSH框架处理,以及spring、hibernate数据批量保存等功能源码、所用到的lib包 数据环境为:oracle 10G 开发:Mycelipse5.1 Spring1.2 Hibernate3.0;

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

     由于Spring通过代理Hibernate完成数据层的操作,所以原Hibernate的配置文件hibernate.cfg.xml的信息也转移到Spring的配置文件中:  代码 4 Spring中有关Hibernate的配置信息 1. 2. !-- 数据源的配置 //--> 3. ...

    Spring中文帮助文档

    9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 ...

    Spring API

    9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 ...

    ssh对lob完美处理

    structs1.2 spring2.5 hibernate3.0 java web 对clob大文本 blob图像处理 这是一个完整的例子,整合了ckeidtor,servlet直接显示数据库blob图片, 注意oracle驱动ojdbc14.jar,如果是其他驱动例如ojdbc14_*g都是不...

    spring-framework-reference-4.1.2

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    DBKING使用指南

    在dbking中,所有的数据库数据只有五种数据类型,String、Number(BigDecimal)、Timestamp、Clob(String)、Blob(byte[]),经过反复测试后,我们会例出各种数据库数据类型到这五种类型的映射表,当然我们也有...

    spring-framework-reference4.1.4

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

Global site tag (gtag.js) - Google Analytics