开发者博客:www.developsearch.com
项目中需要用到Clob,自己以前虽然对此有些了解,但并没有写过代码.而Google的结果很多却没什么和自己的项目比较相近的.算了自己搞吧.
工程中使用SSH frameworks,因此着手点无非就是对Hibernate进行ORM mapping.
下面给出我自己的配置.比较简单,但很实用,通过测试.运行无问题.
POJO类中内容字段:content 声明:
private java.sql.Clob content;
foo.hbm.xml 映射文件片段
<property name="content" column="content" type="clob" />
将字符串转换为Clob对象
Clob clob = Hibernate.createClob("要存取的内容");
obj.setContent(clob);
这样便完成了存的操作.
从Clob中获取字符串
由于Clob特殊的存储格式,因此必须使用IO来进行处理.
我写了个通用的静态方法,用来进行转换
public static String clob2String(Clob clob) { StringBuilder strBuilder = new StringBuilder(""); BufferedReader reader=null; if (null != clob) { try { reader = new BufferedReader(clob.getCharacterStream()); } catch (SQLException e) { e.printStackTrace(); } String st = ""; try { while (null != (st = reader.readLine())) { strBuilder.append(st+"\r\n"); } } catch (IOException e) { e.printStackTrace(); } } return strBuilder.toString(); }
相关推荐
这种方式适合处理大数据量的文本,因为它允许直接与数据库的Clob类型进行交互,无需经过字符串的转换。 **配置部分**: 4.1.1 **实体类**: 在实体类中,你需要定义一个Clob类型的属性,例如`private Clob ...
- 使用Blob/Clob接口:直接操作Clob接口进行读写,而不是将其转换为字符串或其他数据类型,以减少转换开销。 通过以上内容,你应该对在Hibernate中动态映射Oracle 10g的CLOB类型有了深入理解,这将帮助你在实际...
4. 在Hibernate的配置文件中添加"hibernate.connection.SetBigStringTryClob"属性,这对于Oracle数据库是必须的,以确保可以将大字符串存储为Clob类型。 5. 进行存取测试以验证配置的有效性。 传统存储方式则是将...
在Hibernate中,如果Clob字段的值是字符串,可以通过将Clob字段映射为String类型,让Hibernate自动处理转换。这种方式简单易用,但可能不适合非常大的文本,因为可能会导致内存溢出。 3.3 直接使用Clob类型: 对于...
4. **参数化日志**:使用`logger.info("User {} logged in", username)`这样的形式,可以避免不必要的字符串拼接,提高效率。 5. **MDC(Mapped Diagnostic Context)**:SLF4J提供了一个键值对的存储区域,用于在...
// CLOB通常以字符串形式存储,然后在数据库中转换 // getters and setters } ``` 接下来,我们可以通过SessionFactory创建Session对象,然后进行BLOB和CLOB的插入和读取操作。 插入操作: ```java Session ...
- 如果数据库支持UTF-8编码,确保所有字符串字段都设置为UTF-8格式。在Hibernate配置中,也需要配置字符集,如`hibernate.connection.characterEncoding=UTF-8`,以保证数据的正确存储和读取。 总之,为了实现...
对于CLOB,可能是字符串。以下是如何操作的示例: ```java Document document = new Document(); document.setContent(new SerialBlob(fileBytes)); // 将文件字节流转换为Blob对象 document.setDescription(new ...
在处理Clob时,我们可以使用`session.createClob()`方法创建Clob对象,并将其内容设置为字符串: ```java String description = "这是一个很长的用户描述..."; session = sessionFactory.openSession(); ...
在Java Web开发中,Hibernate是一个流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。Blob和Clob是Java中用于处理大数据类型的数据对象,Blob用于存储二进制大对象,如图片、音频或视频...
17.2.3 字符串模式匹配 17.2.4 逻辑运算 17.2.5 集合运算 17.3 小结 17.4 思考题 第18章 Hibernate的检索方式(下) 18.1 连接查询 18.1.1 默认情况下关联级别的运行时检索策略 18.1.2 迫切左外连接...
**二进制类型**:`byte[]` 通常映射到 `BINARY`、`VARBINARY` 或 `BLOB`,`java.lang.String` 可以映射到 `TEXT` 或 `CLOB`,`java.io.Serializable` 对象可以存储为 `VARBINARY`、`BLOB`,`java.sql.Clob` 和 `java...
Hibernate简化了Java应用程序与数据库之间的交互,它允许我们将Java对象直接映射到数据库中的表。理解Hibernate映射类型与Java类型的对应关系对于有效地使用Hibernate至关重要。 首先,我们来看一下基本数据类型的...
#### 字符串和布尔类型映射 1. **Character**: 映射到`java.lang.Character`,在SQL中对应`CHAR(1)`类型。 2. **String**: 映射到`java.lang.String`,在SQL中对应`VARCHAR`类型,长度可变。 3. **Boolean**: 映射...
使用Hibernate时,我们可以通过在实体类的属性上添加`@Column`注解来指定其对应的数据库列类型,或者通过`@Type`注解使用自定义的类型转换器。此外,Hibernate还支持其他高级特性,如类型别名、级联操作、懒加载等,...
### Struts2框架介绍 Struts2是一个基于Java语言...同时,对于未来技术选型,Oracle数据库推荐优先考虑使用CLOB和BLOB类型来存储大型数据,因为这些类型比LONG类型拥有更好的特性,例如更大的容量和更好的操作灵活性。
在Hibernate中,我们通常使用`Blob`和`Clob`类型来映射这些大字段。 **一、Hibernate配置** 在Hibernate配置文件(hibernate.cfg.xml)中,确保已经正确设置了数据库连接参数,并且JDBC驱动支持大字段的处理。对于...
对CLOB和BLOB数据类型的操作是非常重要的,特别是在使用Java数据库连接(JDBC)时。本文将详细介绍JDBC实现对CLOB和BLOB数据类型的操作,包括读取和写入操作。 CLOB数据类型 CLOB数据类型用于存储大型字符数据,如...
7. **写入Clob数据**:将字符数据流或字符串设置到Clob对象,然后在SQL语句中使用。例如,`PreparedStatement.setClob(int index, Reader reader)`。 8. **事务管理**:处理Blob和Clob数据通常涉及大量I/O操作,...