HibernateTemplate对CLOB对象操作,No LobHandler found for configuration... 利用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>
相关推荐
在Java的持久化框架Hibernate中,BLOB(Binary Large Object)和CLOB(Character Large Object)是用来处理大数据类型的,如图像、音频、大型文本等。本文将深入探讨Hibernate如何进行BLOB和CLOB的操作,以及相关的...
在Java的持久化框架Hibernate中,处理大数据类型如Clob(Character Large Object)和Blob(Binary Large Object)是一项常见的任务。这些数据类型通常用于存储大量的文本数据(Clob)和二进制数据(Blob),例如长篇...
在Java的持久化框架Hibernate中,处理大数据类型如Oracle数据库中的Clob(Character Large Object)和Blob(Binary Large Object)字段是一项重要的任务。Clob通常用于存储大量的文本数据,而Blob则适用于二进制...
3. **插入与更新**:当向数据库中插入或更新包含Clob字段的记录时,Hibernate会自动处理这些数据。可以使用`session.save()`或`session.update()`方法,但在实际使用中,我们通常需要使用`session.merge()`,因为它...
在Java编程中,当需要与数据库交互并处理这些大数据类型时,JDBC提供了接口和方法来操作Blob和Clob。 这篇博客文章(链接已提供)可能详细介绍了如何在Java应用程序中有效地使用JDBC来处理Blob和Clob对象。通常,这...
在Java的数据库编程中,...总的来说,JDBC4为Blob和Clob的处理提供了许多改进,使得在Java应用程序中处理大数据对象变得更加高效和便捷。无论是直接使用JDBC还是结合ORM框架,都可以灵活地实现对Blob和Clob的读写操作。
4. **BLOB/CLOB处理**:在Hibernate中,BLOB用于存储二进制大数据,CLOB用于存储字符大数据。在配置实体类时,可以指定对应的字段为这些类型。 5. **批处理**:在进行大量大字段操作时,可以使用批处理更新或插入,...
如果使用Hibernate等ORM框架,它们提供了对大对象的集成支持,例如Hibernate的`@Lob`注解,可以自动处理Blob或Clob。 7. **报表应用**: 大对象在报表应用中的作用主要是存储和展示非结构化数据。例如,报告可能...
在Spring框架中,LOB(Large Object)字段通常用于存储大数据,如BLOB(Binary Large Object)用于二进制数据,如图片或文档,CLOB(Character Large Object)用于字符数据,如长文本。本篇文章将深入探讨如何在...