• Spring+Hibernate+Oracle中的Clob操作配置


    bean对象配置:

    <!-- 此处用于指定当前JDBC的实现,详见下面注解① -->
         <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor" />
         <bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">
          <property name="nativeJdbcExtractor">
           <ref bean="nativeJdbcExtractor" />
          </property>
         </bean>
    
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>    
            ...
            <property name="hibernateProperties">
                <value>
                hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
                hibernate.show_sql=false
                </value>
            </property>
            <property name="lobHandler">
               <ref bean="oracleLobHandler" />
              </property>
        </bean>

     hibernate.hbm.xml配置:

    <property name="totalInfo" column="total_info" type="org.springframework.orm.hibernate3.support.ClobStringType" not-null="false"/>

     POJO属性设置:

    private String totalInfo;

     ---------------------------------------------------------------------------------------------------------------------------

    详解①:

      oracle使用私有的API产生oracle.sql.BLOB和oracle.sql.CLOB实例,oracle只接受其自己API产生的实例,并且在PreparedStatement中不支持大的数据流。

    此实现类需要一个原生的可以被转换成oracle.jdbc.OracleConnection的链接,所以在使用连接池的时候,就需要一个原生JDBC的转换器。

    Spring内置提供的NativeJdbcExtractor转换器有:位于orgspringframeworkjdbcsupport
    ativejdbc下
    C3P0NativeJdbcExtractor
    CommonsDbcpNativeJdbcExtractor
    JBossNativeJdbcExtractor
    NativeJdbcExtractor
    NativeJdbcExtractorAdapter
    SimpleNativeJdbcExtractor
    WebLogicNativeJdbcExtractor
    WebSphereNativeJdbcExtractor
    XAPoolNativeJdbcExtractor

    此处原生JDBC的转换器仅是真的Oracle进行设置,其他数据库可以直接使用SimpleNativeJdbcExtractor

     若未正确设置,会发生com.mchange.v2.c3p0.impl.NewProxyConnection cannot be cast to oracle.jdbc.OracleConnection异常。

  • 相关阅读:
    zabbix (2.0.6) 历史记录处乱码
    centos 关闭防火墙
    android 带边框的圆角按钮
    Android开发如何在4.0及以上系统中自定义TitleBar
    Android配置时,点击eclipse里Window->Preferences里的android选项出错
    .net 内存泄露检测工具
    UVA 548 Tree
    UVA 536 Tree Recovery
    UVA 514 Rails
    UVA 442 Matrix Chain Multiplication
  • 原文地址:https://www.cnblogs.com/tq03/p/3517892.html
Copyright © 2020-2023  润新知