`

hibernate 处理text 字段,像处理字符串一样

阅读更多
建表脚本:

/*==============================================================*/
/* 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类型一样。

分享到:
评论

相关推荐

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

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

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

    - 使用Blob/Clob接口:直接操作Clob接口进行读写,而不是将其转换为字符串或其他数据类型,以减少转换开销。 通过以上内容,你应该对在Hibernate中动态映射Oracle 10g的CLOB类型有了深入理解,这将帮助你在实际...

    Hibernate对BLOB CLOB操作

    // 设置CLOB,这里用的是单字符字符串 session.save(u); // 保存到数据库,但还未提交事务 ``` 为了实际读取和写入BLOB和CLOB,你需要从文件系统读取数据,然后将其转换为InputStream或Reader,再使用Hibernate...

    Java数据类型,Hibernate数据类型,标准sql数据类型之间的对应表

    MySQL是世界上最流行的关系数据库管理系统之一,它的数据类型包括数字类型(如INT、DECIMAL)、字符串类型(如VARCHAR、TEXT)、日期和时间类型(如DATE、DATETIME)以及二进制类型(如BLOB)等。 例如,Hibernate...

    Hibernate中数据类型

    `VARCHAR2` 在 Oracle 中代替 `VARCHAR`,而 `NVARCHAR2` 用于 Unicode 字符串。因此,在实际应用中,开发者需要根据所使用的数据库系统进行适当的调整。 **3. 使用 Hibernate 数据类型** 在 Hibernate 中,数据...

    Hibernate对Blob,Clob的操作

    // 读取字符流,例如转换为字符串 ``` 值得注意的是,Blob和Clob对象通常占用大量内存,因此在读取数据后应尽快关闭流资源,以避免内存溢出。 另外,由于Blob和Clob可能会占用大量磁盘空间,所以在设计数据库表...

    Hibernate数据类型映射及ID

    #### 字符串和布尔类型映射 1. **Character**: 映射到`java.lang.Character`,在SQL中对应`CHAR(1)`类型。 2. **String**: 映射到`java.lang.String`,在SQL中对应`VARCHAR`类型,长度可变。 3. **Boolean**: 映射...

    Hibernate_MySQL中文乱码问题.doc

    1. **在`hibernate.cfg.xml`中配置连接字符串**: ```xml &lt;property name="connection.url"&gt;jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8 ``` 如果使用的是`hibernate.properties...

    java时间操作大集合

    **Java开发指南关联**:标签中的 "Hibernate java 开发指南" 提示我们,这可能是关于Java开发的一个更广泛的上下文,可能包含如何在Hibernate框架中使用这些时间操作的知识,比如在持久化对象时处理日期和时间字段。...

    Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决

    Hibernate本身对编码没有直接影响,但在存储和检索数据库中的字符串时,需要确保数据库连接和SQL语句使用相同的编码。通常,MySQL数据库默认使用UTF-8,但需要在Hibernate配置文件(如`hibernate.cfg.xml`)中指定...

    基于Jsp的在线考试系统毕业设计论文

    即使如此,hibernate始终都存在一个大的bug,hibernate的本地sql查询支持任何长度的字符串查询,然而当mysql中的字段变成text类型时,hibernate一定会报一个“type=-1“的错误,这是我们组在导入试题时发现试题名称...

    Hibernate类型映射

    用于存储可变长度的字符串。 9. `byte`:映射Java的`byte`或`Byte`类型,对应的SQL类型是`TINYINT`。用于存储小整数。 10. `boolean`:映射Java的`boolean`或`Boolean`类型,对应的SQL类型是`BIT`。在某些数据库中...

    hibernate5.2的基本配置方法(详解)

    在MySQL中,创建名为`student`的表,包含字段`id`(整型)、`age`(整型)和`name`(字符串)。这将是实体对象`Student`对应的数据库表。 4. **实体类设计**: 在`src`目录下创建名为`student`的包,然后在此包内...

    mysql转换到oracle数据库

    - 在Oracle中,对于字符串中出现的单引号,需要进行转义处理,例如使用`Translate`函数替换所有的`\'`为`''`。 通过以上详细步骤和技术要点,我们可以有效地将MySQL数据库中的数据及其相关的应用程序迁移至Oracle...

    JSON ——数据库结果集转换

    2. **手动构建JSON**:对于简单的查询结果,可以手动构建JSON字符串,但这通常效率较低且容易出错,特别是在处理复杂数据结构时。 3. **利用现有的库**:例如,使用Google的Gson库或Jackson库,它们提供了强大的...

    spring-boot笔记

    - **@Size**: 验证对象的长度是否在指定范围内,如数组、集合、映射和字符串。 - 示例:`@Size(min = 3, max = 20)` - **@Length**: 验证字符串长度是否在指定范围内。 - 示例:`@Length(min = 3, max = 20)` #...

    J2EE(错误之数据类型转换异常)

    首先,`setAttribute`方法接收两个参数:一个字符串键和一个对象值。这意味着你可以存储任何类型的Java对象,但当你通过`getAttribute`获取这个值时,你需要确保类型匹配。在示例中,尝试将一个`Integer`对象设置为`...

    springmybatis

    其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细...

    代码生成工具语法(DOC)

    variable`用于当变量不存在时输出空字符串,例如`&lt;input type="text" name="email" value="$!email"/&gt;`。 7. **转义机制**:在需要在输出中显示`$`字符时,需要使用反斜杠`\`进行转义,如`\$`。`#`字符的转义类似,...

    Java程序员面试综合

    // 将日期转换为字符串 System.out.println(str); // 输出日期字符串 // 将字符串转换为日期 Date d1 = sdf.parse("yyyy-MM-dd"); ``` #### 编码转换 ```java String a = new String("中".getBytes("gb2312"), ...

Global site tag (gtag.js) - Google Analytics