在spring中如何处理oracle大字段

在spring中采用OracleLobHandler来处理oracle大字段(包括clob和blob),则在程序中不需要引用oracle的特殊类,从而能够保证支持我们的代码支持多数据库。

所以在Spring的主配置文件xx.xml中的配置SessionFactory的bean中配置:


<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" lazy-init="true" autowire="default" dependency-check="default"/>

<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true" autowire="default" dependency-check="default">
    <property name="nativeJdbcExtractor" ref="nativeJdbcExtractor"/>
  </bean>

<bean id="sessionFactory" class="org.hibernate.cfg.SWSSessionFactoryBean" lazy-init="false" autowire="default" dependency-check="default">

...

<property name="lobHandler">
      <ref bean="oracleLobHandler"/>
    </property>

...

</bean>


大家可能已经注意到 nativeJdbcExtractor和 lobHandler 都设置为 lazy-init="true",
这是因为 nativeJdbcExtractor需要通过运行期的反射机制获取底层的 JDBC 对象,
所以需要避免在 Spring 容器启动时就实例化这两个 Bean。

<注:上面的SWSSessionFactoryBean是被重写过的,继承AnnotationSessionFactoryBean>

1、首先数据表中的clob类型对应java持久化类的String类型;而blob类型对应byte[]类型
2、1.定义hibernate标签时,持久化类中对应clob类型的属性的hibernate type应为org.springframework.orm.hibernate.support.ClobStringType;而对应blob类型的属性的hibernate type应为org.springframework.orm.hibernate.support.BlobByteArrayType。

2.如果通过spring 注解功能配置PoJo类时,在该大字段属性的getXXX()方法前面加上注解:


public String xxx;

...

@Lob
@Type(type="org.springframework.orm.hibernate3.support.ClobStringType")
@Column(length=10000)
public String getXXX ()
{
 return xxx;
}


注释:
@Lob:大字段,lob包括blob和clob,其中clob用于纯文本的,blob用于非文本的,比如图片;
@Type(type="org.springframework.orm.hibernate3.support.ClobStringType"):Oracle JDBC
      不允许流操作以批量方式执行,而Oracle CLOB采用流机制作为数据读写方式,两则冲突,
      所以用这个注解解决,可见spring对LOB有很好的支持,如果用到blob,可以把support后
      面的type改掉。当然也可以设置<prop key="hibernate.jdbc.batch_size">0</prop>,不过这个

方法比较不好,会影响效率,不推荐。
@Column(length=10000) :这个简单,就是限制长度,最大值多少没亲自侧过,理论上4G,但在
      NTFS文件系统或许不止4G,没试过。
3、以后访问这些对应clob和blob类型的属性时,按普通属性getorSet处理,不需要特别编码。

转载于:https://www.cnblogs.com/zhongjinbin/archive/2012/05/03/2480914.html

spring+hibernate的clob大字段处理相关推荐

  1. spring+hibernate中clob、blob字段的处理方法

    今天在开发项目的时候遇到CLOB字段的问题,和平时的String字段一样处理发现HQL的查询结果是NULL,到网上查找了一些资料,处理方式作了一些修改以后,数据成功显示,现总结配置如下: applic ...

  2. 关于OLEDB 大字段操作一点总结

    OLEDB技术是微软提供的一套非常强悍的面向不同数据源的数据库接口,而我所接触的开发人员中使用的人并不多,大部分使用基于OLEDB的ADO方式进行数据库操作.使用OLEDB操作普通字段的资料在网上很常 ...

  3. Struts+Spring+Hibernate处理Lob(Blob,Clob)--sessionFactory中注入 org.springframework.jdbc.support.lob.Def

    [转载]org.springframework.jdbc.support.lob. 转载▼ 标签: 转载 分类: spring 原文地址:org.springframework.jdbc.suppor ...

  4. oracle clog读取 php,Spring+Hibernate中处理Oracle的BLOG和CLOG字段

    对于BLOG和CLOB字段,大部分数据库提供了较为透明的支持,但Oracle比较特殊一些,在用Spring和Hibernate操作时,需要作一些特殊的处理,以CLOB为例,基本有下面几个步骤: 1.在 ...

  5. oracle数据库查询如何导出大字段,Oracle数据库导出大字段(CLOB)数据-Oracle

    导出CLOB的几个SQL语句: 1.导出含有大字段数据的M条记录 exp user/passwd statistics=none compress=n consistent=y file=/orada ...

  6. oracle9i 大字段CLOB 长度无效 异常ORA-01483: DATE 或 NUMBER 赋

    2019独角兽企业重金招聘Python工程师标准>>> oracle9i 大字段CLOB 长度无效 异常: Caused by: java.sql.BatchUpdateExcept ...

  7. oracle varchar2改成大字段类型clob,读取大字段内容

    oracle varchar2(4000)改成大字段类型clob,如果需要改成大字段的varchar2列有内容,不能直接用 alter table med_generic modify option0 ...

  8. mysql的大字段clob,Oracle数据库导出大字段(CLOB)数据

    导出CLOB的几个SQL语句: 1.导出含有大字段数据的M条记录 exp user/passwd statistics=none compress=n consistent=y file=/orada ...

  9. Spring Boot + Oracle 处理Blob/Clob类型字段实例

    本篇演示使用SpringBoot (JPA)如何保存和查询Oracle 数据库中的Clob/Blob 类型的字段. Clob/Blob 大对象数据 Clob/Blob 类型的字段用于保存大型的数据, ...

最新文章

  1. 注册窗口类RegisterClassEx   AfxRegisterWndClass
  2. vsftp匿名访问目录_vsftp 匿名访问设置设置
  3. Seq2Seq中Exposure Bias现象的浅析与对策
  4. 计算机网络 闯关,2009计算机网络考研试题过关必练.docx
  5. wdcp mysql密码_wdcp默认的mysql密码是多少?
  6. linux用户怎么归纳到组,Linux用户和组命令总结
  7. Oracle包和包体
  8. C#初学的一些注意点
  9. ofdm误码率仿真代码_共享源代码之MSK仿真(1)
  10. 小游戏《塔防》开发(一)上篇
  11. linux安装seaweedfs
  12. 我的十余年职业生涯之路
  13. pion:rtc-to-webrtc示例
  14. CTFSHOW WEB 1-100
  15. Elasticsearch的DSL搜索
  16. 云呐数据备份|什么是结构化数据
  17. numpy 光速入门示例
  18. 字典树/Trie/前缀树-LeetCode总结:720词典中最长的单词;127. 单词接龙;677. 键值映射;面试题 17.17. 多次搜索;648. 单词替换
  19. c语言中求定积分矩形法,C语言使用矩形法求定积分的通用函数
  20. Unity给图片添加点击事件

热门文章

  1. Codeforces Round #716 (Div. 2), B. AND 0, Sum Big, 快速幂结论题
  2. 【poj3468】A Simple Problem with Integers
  3. Delicious Apples
  4. 集训被虐第一天7.31
  5. vc 控制台添加托盘显示_VC添加托盘图标
  6. 试题14 回文数(详解)
  7. Unity3D之NGUI基础4:NGUI图片管理工具AtlasMaker
  8. 人群与网络:新事物在网络中的扩散
  9. bzoj 3503: [Cqoi2014]和谐矩阵(高斯消元)
  10. bzoj 1133: [POI2009]Kon(DP)