有些东西总忘记,还是记下来以便于查询
Spring或Hibernate其实都提供了透明处理Clob的方法
1.在sessionFactory中加入lobHandler的注射:
<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="lobHandler" ref="lobHandler"/>
<property name="mappingResources">
<value>xxx.hbm.xml</value>
.....
</property>
</bean>
2.定义这个lobHandler,值得注意的是这里有Oracle的版本区别:
Oracle9i处理Clob的方式:
<bean id="lobHandler" lazy-init="true" class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor">
<ref bean="nativeJdbcExtractor"/>
</property>
</bean>
<bean id="nativeJdbcExtractor" lazy-init="true" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"/>
Oracle10g处理Clob的方式:
<bean id="lobHandler" lazy-init="true" class="org.springframework.jdbc.support.lob.DefaultLobHandler"/>
对应的应该使用Oracle10g对应的JDBC驱动.
3.在领域对象的hbm中对应的Clob字段应该使用这样的定义:
<property name="context" column="context" type="org.springframework.orm.hibernate.support.ClobStringType" length="1048576000"/>
这里的length是字节了,不是长度哦,最大可以设到2G.对应的,该字段在领域对象中直接申明成String就可以了.当对这个字段写入长数据时直接调用其set方法就可以了,Spring会自己帮你做余下的处理,让你透明的处理Clob字段.
4.业务逻辑层对该字段的操作必须需要在有事务管理的方法中使用,否则会报:
java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA transaction with 'jtaTransactionManager' on LocalSessionFactoryBean required
分享到:
相关推荐
Hibernate存储Clob字段的方式总结涉及了在Java开发中使用Hibernate操作大型文本字段Clob的操作方法。本文主要介绍了两种操作Clob字段的方法,一种是将Clob字段直接映射为String类型,另一种是使用Clob类型进行处理。...
在实际项目中,还需要考虑性能优化、错误处理等问题,例如使用流式处理减少内存占用,以及适当地配置Hibernate的缓存策略等。了解并熟练掌握这些技巧,能帮助我们在处理大数据类型时更加高效和稳定。
hibernate存取oracle的clob
### Spring与Hibernate处理大字段(CLOB/BLOB) 在企业级应用开发中,经常会遇到需要存储大量文本或二进制数据的情况,这时就需要用到数据库的大字段类型如CLOB(Character Large Object)和BLOB(Binary Large ...
在Java的持久化框架Hibernate中,BLOB(Binary Large Object)和CLOB(Character Large Object)是用来处理大数据类型的,如图像、音频、大型文本等。本文将深入探讨Hibernate如何进行BLOB和CLOB的操作,以及相关的...
Hibernate也支持直接使用Clob对象进行映射,这意味着在实体类中直接使用Clob类型的字段,然后在Hibernate的映射文件中进行相应的配置。这种方式适合处理大数据量的文本,因为它允许直接与数据库的Clob类型进行交互...
5. **性能优化**:处理CLOB时,需注意性能问题。例如,频繁读写CLOB可能导致性能下降,因此在设计系统时要考虑读写频率和数据量。 6. **示例代码**:在Hibernate中,读取和写入CLOB的代码可能如下: ```java // ...
hibernate Blob、Clob字段的映射的例子.数据库mysql,数据库放在文件夹里面,例子的说明文章在我的csdn blog: http://blog.csdn.net/zhengcandan
在Java的持久化框架Hibernate中,处理大数据类型如Clob(Character Large Object)和Blob(Binary Large Object)是一项常见的任务。这些数据类型通常用于存储大量的文本数据(Clob)和二进制数据(Blob),例如长篇...
Oracle的Clob数据类型...此外,对于非常大的Clob数据,可能需要分段读取和写入,以避免一次性处理大量数据带来的性能问题。理解并熟练掌握Clob在Hibernate中的处理方式,对于开发高效且稳定的数据库应用程序至关重要。
Spring和Hibernate框架结合使用可以有效地进行CLOB字段的操作。以下是实现这一功能的关键步骤和注意事项: 1. **配置SessionFactory** 在Spring配置文件中,你需要创建一个`SessionFactory` bean,同时指定一个`...
- 查询数据:查询结果中包含Clob或Blob字段时,需要谨慎处理,避免一次性加载大数据导致内存问题。可以使用`InputStream`或`Reader`分块读取。 4. **性能优化**: - 使用`lobHandler`:Hibernate提供`LobHandler`...
本文将详细介绍如何在Hibernate中操作Blob和Clob字段,实现数据的存储与读取。 首先,我们需要在Hibernate映射文件(.hbm.xml)中定义Blob和Clob字段。对于Blob,可以这样声明: ```xml ``` 这里的`name`属性...
这篇文章主要讲解了如何使用`JDBC`和`Hibernate`这两种不同的方式来处理`CLOB`和`BLOB`字段。 1. **数据库中的`CLOB`与`BLOB`类型** - 在MySQL中,`CLOB`对应`TEXT`类型,`BLOB`对应`BLOB`类型。 - 在DB2或Oracle...
本篇文章将探讨在Hibernate中如何使用Clob类型来处理大文本数据,主要涉及Clob类型的概念、使用场景、在Hibernate中的配置以及一些注意事项。 Clob(Character Large Object)是SQL标准定义的一种数据类型,用于...
在Hibernate,一个流行的Java对象关系映射(ORM)框架中,Blob和Clob也被广泛使用,特别是在处理大型图片、文件或长文本时。 在Hibernate和Microsoft SQL Server的环境中,Blob常用来存储图像、音频、视频等二进制...