`
services
  • 浏览: 80308 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Hibernate+Oracle+CLOB的读写

    博客分类:
  • java
阅读更多
用hibernate封装oracle的clob类型操作起来很不方便,但是新的oracle10g的jdbc驱动,对此有很多改进。下载了最新的Oracle 10g的jdbc驱动。
Hibernate+Oracle+CLOB的读写如下设置:
1.在Oracle里设置某字段为clob类型。
2.在Hibernate的配置文件里使用网上下载的Oracle 10g最新的jdbc驱动。
3.实体类里把clob字段对应的属性类型设置为String。
4.hibernate的映射文件*.hbm.xml里把该字段对应的类型该为text。
然后就可以在程序里把它当成String随便用了。
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:@192.168.88.4:1521:mis</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;
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类型一样。
分享到:
评论

相关推荐

    spring+hibernate操作oracle的clob字段

    在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB...通过以上配置和操作,你可以在Spring和Hibernate的环境中顺利地对Oracle数据库的CLOB字段进行读写,满足J2EE应用中的大数据存储需求。

    hibernate存取oracle的clob

    Oracle 提供了丰富的 API 来操作 CLOB 类型的数据,例如读写 CLOB 数据等。 #### 2. Hibernate 配置与实体类设计 为了能够通过 Hibernate 来存取 CLOB 数据,我们需要对 Hibernate 进行相应的配置,并且合理地设计...

    关于Oracle的 Clob数据类型在Hibernate中的应用小结

    以下是对Oracle Clob在Hibernate中应用的详细总结: 3.1 传统的JDBC方式: 在没有使用ORM框架之前,我们通常直接通过JDBC来处理Clob数据。这涉及到Clob对象的创建、读取和更新操作。创建时,需要调用...

    hibernate动态映射表处理oracle的clob类型

    本主题“hibernate动态映射表处理Oracle的CLOB类型”主要聚焦于如何在Hibernate中有效地管理和操作CLOB字段。在Oracle 10g中,CLOB数据类型的处理有时会遇到一些挑战,尤其是在与ORM框架结合使用时。以下将详细介绍...

    使用hibernate对oracle读取blob

    Hibernate作为一款流行的ORM(对象关系映射)框架,提供了与Oracle数据库交互的简便方式,包括处理Blob数据。本文将详细介绍如何使用Hibernate和JDBC读取和存储Oracle数据库中的Blob对象。 ### 1. Hibernate Blob...

    Hibernate操作Oarcle中Clob、Blob字段小结

    在Java的持久化框架Hibernate中,处理大数据类型如Oracle数据库中的Clob(Character Large Object)和Blob(Binary Large Object)字段是一项重要的任务。Clob通常用于存储大量的文本数据,而Blob则适用于二进制...

    Spring+Hibernate处理Oracle lob字段(一)

    在本文中,我们将深入探讨如何在Java环境下,利用Spring和Hibernate框架处理Oracle数据库中的LOB(Large Object)字段。LOB字段通常用于存储大体积的数据,如文本、图片或视频。在实际开发中,处理这类数据时可能会...

    Hibernate对BLOB CLOB操作

    同时,确保数据库支持高效的BLOB和CLOB操作,比如Oracle的BFILE类型或使用流式处理。 总之,Hibernate提供了对BLOB和CLOB的便利支持,允许开发者在Java应用中轻松地处理大数据对象,从而实现与数据库的高效交互。...

    关于在Hibernate中对于Clob,Blob字段的处理方法

    本篇将详细介绍在Hibernate中如何处理Clob和Blob字段,以及使用特定Oracle JDBC驱动程序的优势。 首先,Hibernate通过`org.hibernate.type`包中的`ClobType`和`BlobType`来映射Clob和Blob。在实体类中,你需要定义...

    spring1.2+hibernate2对大字段的处理实例

    3. **流式处理**:当读写大数据字段时,可以利用Hibernate2的流式API,避免一次性加载整个字段到内存,减少内存消耗。 4. **二级缓存**:虽然Spring1.2和Hibernate2的版本较旧,但它们仍然支持二级缓存,可以用来...

    java将图片写入数据库,并读出来(blob clob)

    首先,需要引入数据库驱动,例如MySQL、Oracle或PostgreSQL的驱动。然后,使用`DriverManager.getConnection()`方法创建连接。 2. **准备SQL语句** 创建一个SQL INSERT语句来存储图像数据。例如: ```sql INSERT...

    使用Jdbc4操作Blob,Clob

    在Java的数据库编程中,JDBC(Java Database Connectivity)是一个重要的接口,用于与各种数据库进行交互。当涉及到处理大型对象...无论是直接使用JDBC还是结合ORM框架,都可以灵活地实现对Blob和Clob的读写操作。

    java大对象

    如果使用Hibernate等ORM框架,它们提供了对大对象的集成支持,例如Hibernate的`@Lob`注解,可以自动处理Blob或Clob。 7. **报表应用**: 大对象在报表应用中的作用主要是存储和展示非结构化数据。例如,报告可能...

Global site tag (gtag.js) - Google Analytics