sh配置lob

3 篇文章 0 订阅

    spring+hibernate中配置对oracle的lob字段进行操作。

    spring中配置

 

<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 local="nativeJdbcExtractor" />
  </property>
</bean>
 
WebSphere 4 及以上版本的数据源:org.springframework.jdbc.support.nativejdbc.WebSphereNativeJdbcExtractorWebLogic 6.1+ 及以上版本的数据源:org.springframework.jdbc.support.nativejdbc.WebLogicNativeJdbcExtractorJBoss 3.2.4 及以上版本的数据源:org.springframework.jdbc.support.nativejdbc.JBossNativeJdbcExtractor
C3P0 数据源:org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor
DBCP 数据源:org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor
ObjectWeb 的 XAPool 数据源:org.springframework.jdbc.support.nativejdbc.XAPoolNativeJdbcExtractor
 

 

LobHandler 接口为操作 BLOB/CLOB 提供了统一访问接口,而不管底层数据库究竟是以大对象的方式还是以一般数据类型的方式进行操作。此外,LobHandler 还充当了 LobCreator 的工厂类。
大部分数据库厂商的 JDBC 驱动程序(如 DB2)都以 JDBC 标准的 API 操作 LOB 数据,但 Oracle 9i 及以前的 JDBC 驱动程序采用了自己的 API 操作 LOB 数据,Oracle 9i 直接使用自己的 API 操作 LOB 数据,且不允许通过 PreparedStatement 的setAsciiStream()、setBinaryStream()、setCharacterStream() 等方法填充流数据。Spring 提供 LobHandler 接口主要是为了迁就 Oracle 特立独行的作风。所以 Oracle 必须使用 OracleLobHandler 实现类,而其它的数据库统一使用 DefaultLobHandler 就可以了。Oracle 10g 改正了 Oracle 9i 这个异化的风格,终于天下归一了,所以 Oracle 10g 也可以使用 DefaultLobHandler。
 
sessionFactory bean中添加 <property name="lobHandler" ref="lobHandler"/>
hibernate映射文件中:

 

<property  name="**"  type="org.springframework.orm.hibernate3.support.ClobStringType" >
 

 

http://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/
 

 

注:对lob的操作需在事务中进行,否则会报错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值