用hibernate封装oracle的clob类型操作起来很不方便,但是新的oracle10g的jdbc驱动,对此有很多改进。
环境 :wodows2000、oracle9.2、oracle10gJDBC驱动(必须)、hibernate3.1.2
oracle官方网站的clob操作方法:http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/clob10g/ClobManipulationIn10g.java.html
建表脚本:
/*==============================================================*/
/* Table: StoreFile */
/*==============================================================*/
create table StoreFile (
uuid VARCHAR2(128) not null,
name VARCHAR2(200),
text CLOB,
constraint PK_STOREFILE primary key (uuid)
);
hibernate.cfg.xml:(注意多了个SetBigStringTryClob设置,其它没有什么特殊的了)
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.cglib.use_reflection_optimizer">true</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.password">java</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@10.128.4.69:1521:kf</property>
<property name="hibernate.connection.username">java</property>
<property name="hibernate.connection.SetBigStringTryClob">true</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.OSCacheProvider</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<mapping resource="com/study/database/hb/map/File.hbm.xml"/>
</session-factory>
</hibernate-configuration>
File.hbm.xml文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2006-3-13 17:57:00 by Hibernate Tools 3.1.0.beta4 -->
<hibernate-mapping>
<class name="com.study.database.hb.map.File" table="StoreFile" batch-size="0">
<id name="uuid" type="string">
<column name="UUID" length="128" />
<generator class="uuid.hex"></generator>
</id>
<property name="name" type="string" lazy="false">
<column name="NAME" length="200"/>
</property>
<property name="file" type="string" lazy="false">
<column name="text" />
</property>
</class>
</hibernate-mapping>
File.java文件
package com.study.database.hb.map;
// Generated 2006-3-13 17:57:00 by Hibernate Tools 3.1.0.beta4
import java.sql.Clob;
/**
* File generated by hbm2java
*/
public class File
implements java.io.Serializable
{
// Fields
private String uuid;
private String name;
private String file;
// Constructors
/** default constructor */
public File()
{
}
/** full constructor */
public File(String name,String file)
{
this.name=name;
this.file=file;
}
// Property accessors
public String getUuid()
{
return this.uuid;
}
public void setUuid(String uuid)
{
this.uuid=uuid;
}
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name=name;
}
public String getFile()
{
return this.file;
}
public void setFile(String file)
{
this.file=file;
}
}
//比以前特殊的地方是hibernate.cfg.xml多了个SetBigStringTryClob设置。
//把clob映射成string类型,这样在多过4000个字符时也不会出错了。操作方法和普通的string类型一样。
分享到:
相关推荐
Hibernate存储Clob字段的方式总结涉及了在Java开发中...在实际开发中,可以根据需求选择使用String直接映射Clob的方式或者使用Clob类型处理方式,并注意Hibernate session的创建和管理方法,以保证代码的简洁性与效率。
在Java世界中,尤其是在持久化框架Hibernate中,处理Clob类型的数据需要特别的方法和配置。 在Hibernate中,Clob类型的字段通常有两种处理方式: 1. **传统JDBC方式**: 在这种模式下,开发者需要直接操作Clob...
本主题“hibernate动态映射表处理Oracle的CLOB类型”主要聚焦于如何在Hibernate中有效地管理和操作CLOB字段。在Oracle 10g中,CLOB数据类型的处理有时会遇到一些挑战,尤其是在与ORM框架结合使用时。以下将详细介绍...
在Java的持久化框架Hibernate中,处理大数据类型如Clob(Character Large Object)和Blob(Binary Large Object)是一项常见的任务。这些数据类型通常用于存储大量的文本数据(Clob)和二进制数据(Blob),例如长篇...
在Java的持久化框架Hibernate中,处理大数据类型如BLOB(Binary Large Object)和CLOB(Character Large Object)是一项常见的任务。BLOB用于存储二进制数据,如图片、视频或文档,而CLOB则用于存储大文本数据,如...
本文将详细介绍如何在Spring与Hibernate框架结合的情况下,有效地处理Oracle 10g数据库中的CLOB字段。 #### 一、环境配置 为了确保项目能够顺利运行,首先需要搭建好开发环境。本示例中使用的环境配置如下: 1. *...
在Java的持久化框架Hibernate中,BLOB(Binary Large Object)和CLOB(Character Large Object)是用来处理大数据类型的,如图像、音频、大型文本等。本文将深入探讨Hibernate如何进行BLOB和CLOB的操作,以及相关的...
在Hibernate框架中,Clob类型的字段处理是数据库操作中的一个关键环节,尤其是在处理大量文本数据时。以下是对Oracle Clob在Hibernate中应用的详细总结: 3.1 传统的JDBC方式: 在没有使用ORM框架之前,我们通常...
在Java的持久化框架Hibernate中,处理大数据类型如Oracle数据库中的Clob(Character Large Object)和Blob(Binary Large Object)字段是一项重要的任务。Clob通常用于存储大量的文本数据,而Blob则适用于二进制...
其中,处理 Oracle 数据库中的 CLOB 类型数据是一项重要的技能。CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,在 Oracle 数据库中广泛使用。下面我们将详细介绍如何使用 Hibernate 来存取 ...
在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB字段常被用来存储超过4000字节的信息。Spring和Hibernate框架结合使用可以有效地进行CLOB字段的操作。以下是实现这一功能的关键步骤和...
在Java的数据库操作中,`CLOB...总之,无论是使用JDBC还是Hibernate,处理`CLOB`和`BLOB`字段都需要特殊的处理方式,尤其是在Oracle等数据库中。了解这些处理方法对于开发涉及大数据量文本和二进制数据的应用至关重要。
在Java的持久化框架Hibernate中,处理大数据字段,如文本、图像或者其他大量数据,通常涉及到CLOB(Character Large Object)和BLOB(Binary Large Object)类型。这些类型用于存储数据库中的大文本或二进制数据。...
本篇文章将探讨在Hibernate中如何使用Clob类型来处理大文本数据,主要涉及Clob类型的概念、使用场景、在Hibernate中的配置以及一些注意事项。 Clob(Character Large Object)是SQL标准定义的一种数据类型,用于...
Java 中处理 Clob 和 Blob 类型的注解配置 Java 中处理 Clob 和 Blob 类型的注解配置是一种常见的处理大规模数据的方法。Clob(Character Large OBject)类型和 Blob(Binary Large OBject)类型是数据库中两种常用...
总之,Hibernate通过提供对Blob和Clob的直接支持,使得在Java Web应用中处理大数据类型变得相对简单。正确理解和使用这些特性,可以有效地管理数据库中的大对象数据,提高应用的灵活性和可维护性。