使用Hibernate+Oracle9i R2 处理Clob大文本数据
来源:互联网 发布:淘宝秒杀预告 编辑:程序博客网 时间:2024/04/30 04:23
本文主要讨论直接写入Clob类型的字段
应用环境:Hibernate 2.1.3+Oracle 9i R2+Oracle 10g的ojdbc1.4
本人在做一个项目时碰到了将SQL Server 2000移植到Oracle 9i中,在SQL Server 2000种有个表,其中有个text类型的字段用来存储大文本,而在Oracle中有相应的Clob类型的字段来处理大文本。为了少量的更改代码,甚至不更改代码来达到移植的目的,本人尝试了多种方法,现总结出来希望能给碰到同样问题的同行提供参考。
在直接将大文本写入Clob类型的字段时,在Hibernate的映射文件OracleLob.hbm.xml中的映射:
<property name="content" type="text" column="tclob" /> 在相应的pojo中:
在相应的pojo中:
在相应的pojo中:
package mytest.pojo;
public class OracleLob {
.................
private String clob;
.................
public String getClob() {
return clob;
}
public void setClob(String clob) {
this.clob = clob;
}
}
写入数据库:
....................
OracleLob lob = new OracleLob();
lob.setContent(content); //content是大文本字符串
....................
session.save(lob);
...................
本人在兼顾两个数据库之间的移植时,只改映射文件而没有改动一行代码。
在OracleLob.hbm.xml文件中做pojo与数据库字段之间的映射关系时必须将type类型设定为Hibernate的text类型,我曾试过将type类型设为java.lang.String,测试证明只能存储小于32k的字符,超过32k抛出"java.sql.SQLException: setString 只能处理少于 32766 个字符的字符串"异常,而设为text类型则没有限制。
另外,使用Oracle9i版本的jdbc驱动也会出现字符限制的问题。
在Oracle10g的jdbc驱动下测试通过。
- 使用Hibernate+Oracle9i R2 处理Clob大文本数据
- JDBC处理大文本数据-Clob
- Spring + Hibernate + Oracle9i中使用Clob
- Clob处理大数据
- Spring+Struts+Hibernate 架构中对Oracle9i中clob字段的处理之--新增数据篇
- Spring+Struts+Hibernate 架构中对Oracle9i中clob字段的处理之--新增数据篇
- Spring+hibernate+Oracle9i+CLOB
- spring+hibernate+oracle9i用clob
- spring+hibernate+Oracle9i+CLOB(成功)
- 处理大对象数据-处理CLOB数据
- 处理大数据对象:处理CLOB数据
- ssh实现clob存储大文本数据
- 数据库中使用Clob处理长文本
- 使用JDBC处理大数据(大文本/二进制数据)
- 使用JdbcTemplate 向ORACLE插入大文本CLOB数据的方法
- Hibernate 处理 mysql 大文本
- 使用JDBC处理大数据和大文本
- 使用JDBC处理大数据与大文本
- flex开发心得体会经验
- 使用DrawDib
- regain的基本步骤
- 奇怪,使用MSCOM控件控制信号灯,相同的程序结果却不同?
- 06252005 阴
- 使用Hibernate+Oracle9i R2 处理Clob大文本数据
- 说自己的程序员,难以启齿吗?
- 夏季中暑防治完全手册
- 一定要独立,一定要争气
- 史上最玄的11大巧合
- 世界有多脏?
- 送我至爱-我把爱情炖成汤
- 摸透女人恋爱心
- 爱上你,是我的幸福