利用HibernateTemplate对CLOB对象操作
Oracle中的varchar2对象最多只能存4000个字节,对于要进行大批量字符对象的存储来说显然是远远不够的,这时就需要用到CLOB。
Spring的HibernateTemplate的既有方法完全兼容对CLOB对象的操作,仅仅需要简单的配置:
1.保留实体中需要保存为CLOB对象的属性为String,而在hbm映射文件中将其修改为org.springframework.orm.hibernate3.support.ClobStringType
2.如果仅仅这样,会抛出异常:No LobHandler found for configuration - lobHandler property must be set on LocalSessionFactoryBean
解决方法:
(1).声明一个处理句柄:
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" />
(2).在sessionFactory中注入lobHandler:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="lobHandler" ref="lobHandler"/>
</bean>
提示: 指定lobHandler时,对于MySQL、DB2、MS SQL Server、Oracle 10g,使用DefaultLobHandler即可,而Oracle 9i,
则可以使用OracleLobHandler。因为Oracle9i处理lob的方式和不太一样,所以这里要用spring提供的SimpleNativeJdbcExtractor.处理Oracle9i lob类型的特殊声明:
<bean id="nativeJdbcExtractor" lazy-init="true" class="org.springframework.jdbc.support.nativejdbc.
SimpleNativeJdbcExtractor"/>
<bean id="lobHandler" lazy-init="true" class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor">
<ref bean="nativeJdbcExtractor"/>
</property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 为处理Blob类型字段的句柄声明 -->
<property name="lobHandler">
<ref local="lobHandler" />
</property>
</bean>
同时还应该使用对应的JDBC驱动。
分享到:
相关推荐
HibernateTemplate 的常规用法.doc HibernateTemplate 的常规用法.doc
hibernateTemplate常用方法.htm
这是Hibernate3引入的新特性,对于包含重量级大数据的表字段,这种抽取方式提高了对大字段操作的灵活性,否则加载Tfile对象的结果集时如果总是返回fileContent,这种批量的数据抽取将可以引起数据库的"洪泛效应"。...
spring HibernateTemplate汇总
hibernateTemplate的常用方法
Spring整合hibernate(2)之基于HibernateTemplate的整合,jar需要自己添加!
HibernateTemplate及generator用法.docHibernateTemplate及generator用法.doc
HibernateTemplate的简单示例
HibernateTemplate及generator用法.docxHibernateTemplate及generator用法.docx
HibernateTemplate的用法总结,我自己整理的,仅供参考
关于使用HibernateTemplate
HibernateTemplate的方法部分使用,还有部分的个人见解,有错的,请指出,谢谢
处理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容器中创建 ...
HibernateTemplat技术,此文档详细描述了HibernateTemplate的方法及功能说明,并有实例。
对Spring框架中,HibernateTemplate的使用,底层dao中HibernateTemplate的使用以及HibernateCallBack调用等等
HibernateTemplate源代码
HibernateTemplate.saveOrUpdate时出现\xE7\x84十六进制之类的字符串,连接数据库字符串,数据库字符集,汉字乱码的问题集合,还有我熬3夜的血泪经历