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 是 Spring 框架中的一個关键组件,用于简化 Hibernate 的使用,提供了許多实用的方法来进行数据库操作。在本文中,我们将对 HibernateTemplate 的主要方法进行总结和解释。 ...
本文将对HibernateTemplate的主要用法进行详细介绍。 #### 二、核心方法解析 在HibernateTemplate中,提供了多种常用的方法来实现数据访问操作(CRUD): 1. **`void delete(Object entity)`**:用于删除一个指定...
`HibernateTemplate`是Spring框架中用于操作Hibernate的一个便捷工具类,它极大地简化了Hibernate在实际应用中的集成与开发工作。通过`HibernateTemplate`,开发者可以非常方便地进行数据的增删改查等基本操作,而...
其中,`HibernateTemplate`作为Spring框架中的一个重要组件,为开发者提供了丰富的API来处理数据库操作,使得开发人员能够更加专注于业务逻辑的编写,而不是繁琐的数据访问细节。 #### 二、HibernateTemplate简介 ...
HibernateTemplate提供了丰富的API,可以实现对数据库的基本操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)等。以下是一些常用的方法: 1. `void delete(Object entity)`: 这个方法用于...
`HibernateTemplate`是Spring框架对Hibernate的高级封装,它通过提供简洁易用的API,帮助开发者轻松实现对数据库的操作。更重要的是,它让开发者能够专注于业务逻辑的实现,而无需关心底层细节。通过使用`...
### HibernateTemplate 的详细介绍与使用范围 #### 一、概述 在Spring框架中,`HibernateTemplate`作为ORM(Object ...在实际开发过程中,合理利用`HibernateTemplate`能够显著提升开发效率,降低维护成本。
这表明本文可能会深入探讨HibernateTemplate的内部实现,以及如何在实际项目中有效利用这个工具。对于想要了解Spring和Hibernate整合,以及提升数据库操作效率的开发者来说,这是一个重要的学习资源。
- **execute**:这是`HibernateTemplate`的核心方法,它执行由`HibernateCallback`接口定义的数据访问操作,并将Hibernate抛出的异常转换为Spring的数据访问异常。 ```java public <T> T execute...
在Spring框架中,整合Hibernate是常见的操作,Spring通过其强大的依赖注入(DI)特性,能够帮助我们更好地...通过理解和实践这个例子,你可以更好地掌握Spring的DI机制以及如何利用HibernateTemplate简化数据库操作。
本文将深入探讨如何利用Hibernate中的`HibernateTemplate`类进行批量数据删除操作,这不仅能够提高数据处理效率,还能优化数据库性能。 ### HibernateTemplate与批量删除 在Hibernate框架中,`HibernateTemplate`...
因此,在使用这两个方法时,需要确保对实体对象的状态有一个清晰的认识。 总之,HibernateTemplate 是一个非常强大且灵活的工具,它极大地简化了基于 Hibernate 的数据访问操作。然而,正确地理解和使用这些方法...
2. **分组统计**:指通过SQL语句对查询结果按照一个或多个字段的值进行分组,并对每个分组进行计数或其他聚合操作的过程。 3. **Spring框架**:一个开源的应用程序框架,旨在简化企业级应用程序的开发过程。Spring...
HibernateTemplate的简单示例
以下是一段示例代码,旨在演示如何使用`HibernateTemplate`进行多个数据库操作,并确保所有操作处于同一事务中: ```java public static void main(String[] args) { CtxUtil.getBaseManager()....
`HibernateTemplate`是Spring框架对Hibernate ORM(对象关系映射)的一种封装,它简化了与数据库交互的复杂性,而"基于HibernateTemplate的代码自动生成"正是为了进一步提升开发效率而设计的一种技术手段。...
hibernateTemplate常用方法.htm
读者可以通过这个文档了解Spring和Hibernate在2000年左右的版本中的使用,以及如何有效地利用HibernateTemplate进行数据操作。 总结来说,这个主题涵盖了Spring框架的基本原理、核心特性,以及在2000年左右如何与...
在实际使用中,继承自 HibernateDaoSupport 的 DAO 类可以通过重写其提供的方法,利用 HibernateTemplate 提供的便利功能,实现对业务对象的 CRUD 操作。例如,下面是一些使用 HibernateDaoSupport 的示例方法: ``...