`

struts1.2+spring2.0+hibernate3存取oracle9i的clob字段解决了

阅读更多

开发环境:

windowsXP sp3

jdk1.5

tomcat 6.0

myeclipse 6.5

oracle9i 9.2.0.1

使用的框架:struts1.2,spring2.0,hibernate3

问题:如何存取oracle表的clob字段

折腾了2天,问题总算暂时解决,分享经历与大家交流。

例子:

新闻表(id,标题,内容)

tbl_news

(id varchar2(32),

title varchar2(90),

content clob)

[size=small;]办法1:
[/size]


实体类以及hbm文件中content的类型都设置为java.sql.Clob

spring配置hibernate的xml中,添加以下内容

[code="xml"]
在struts的action中使用以下方式保存tbl_news

[code="java"]...
private NewsManager newsManager;

public void setNewsManager(NewsManager newsManager){
this.newsManager = newsManager;
}

public ActionForward save(ActionMapping mapping, ActionForm form,
HttpServletRequest request,HttpServletResponse response){
LazyValidatorForm lvForm = (LazyValidatorForm) form;
...
tblNews.setNews(Hibernate.createClob((String) lvForm.get("content")));
...
newsManager.save(tblNews)

}

使用以下方式读取

[code="java"]...
tblNews.getContent().subString(1,(int)tblNews.getContent().length)
...
这样的方式,增删改查都没有问题,不过在修改或添加数据时,当content列的内容稍大到大约2000长度时会提示错误,看到网络上的解决办法为

将content首先置空,使用session的save()及flush()方法提交至数据库,接着使用refresh()对象,将实际内容再添加至数据库,不过这种方式我始终没有实现,有待继续研究,如果得到解决过同样问题的朋友指点迷津,将不胜感激。


[size=small;]接着看我的第二种办法:
[/size]


[size=small;]
[/size]
使用spring提供的数据类型ClobStringType

具体办法,tbl_news实体中的content属性使用String类型,hbm文件的type设定为"org.springframework.orm.hibernate3.support.ClobStringType"

数据库连接使用oci驱动,第一种办法中数据库的连接驱动为thin。

在jsp页面以及action中使用String来操作content字段没有任何问题,也不存在数据过大时出现错误。

 

分享到:
评论

相关推荐

    spring+hibernate操作oracle的clob字段

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

    hibernate存取oracle的clob

    hibernate存取oracle的clob

    spring+hibernate 解决大字段(clob)

    例如,在Oracle 9i中,可以尝试使用自定义类型`org.springframework.orm.hibernate3.support.ClobStringType`。 #### 四、总结 通过以上步骤,我们可以成功地在Spring与Hibernate框架中处理Oracle 10g数据库中的...

    jdbc读写Oracle的CLOB字段

    JDBC读写Oracle的CLOB字段

    ORACLE中CLOB字段转String类型

    ### ORACLE中CLOB字段转String类型 在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何...

    java中操作oracle的CLOB字段精解

    Java 中操作 Oracle 的 CLOB 字段精解 Java 中操作 Oracle 的 CLOB 字段是一种常见的操作,在实际开发中,我们经常需要在 Oracle 数据库中存储和读取大型文本数据,这时就需要使用 CLOB(Character Large OBject)...

    spring1.2+hibernate3对大字段的处理实例,供大家学习与交流,可直接运行

    这个压缩包文件"spring1.2+hibernate3对大字段的处理实例"提供了一个具体的案例,演示了如何在Spring 1.2和Hibernate 3框架下解决这个问题。下面我们将深入探讨这些知识点。 首先,Spring 1.2是一个轻量级的Java...

    读取oracle数据库中clob字段的值

    ### 读取Oracle数据库中CLOB字段的值 在处理Oracle数据库时,经常会遇到需要读取CLOB(Character Large Object)类型字段的情况。CLOB主要用于存储大量的文本数据,如文章、文档等内容。由于CLOB类型的数据量可能...

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

    在IT领域,尤其是在Java开发中,Spring和Hibernate是两个非常重要的框架。...这个"spring1.2+hibernate2对大字段的处理实例"就是一个很好的学习资源,能够帮助开发者深入理解如何在旧版框架下处理这类问题。

    sql server中的image类型的数据导出到oracle的clob字段中

    SQL Server 中 Image 类型数据导出到 Oracle 的 CLOB 字段中 在进行数据库迁移或数据交换时,需要将不同数据库管理系统之间的数据类型进行转换。在本文中,我们将讨论如何将 SQL Server 中的 Image 类型数据导出到 ...

    移动ssh项目(struts+spring+hibernate+oracle).zip

    在这个名为“移动ssh项目(struts+spring+hibernate+oracle)”的压缩包中,我们可以看到一个利用这些技术构建的项目实例,结合Oracle数据库。以下是关于SSH框架及Oracle数据库的详细介绍: 1. Struts:Struts是MVC...

    dblink_clob字段异常解决方案

    dblink_clob字段异常解决方案 在数据库.link连接远程数据库时,经常会遇到无法使用CLOB字段的问题,这是因为CLOB字段在远程数据库中的处理方式与本地数据库不同所导致的。下面将讨论解决dblink_clob字段异常的解决...

    Oracle如何插入CLOB字段值

    Oracle如何插入CLOB字段值,附件为简单的示例代码。Oracle如何插入CLOB字段值,附件为简单的示例代码。

    运用Java如何存取Oracle中的CLOB类型字段

    在IT领域,尤其是在数据库操作与Java编程的交集部分,理解和掌握如何在Java中存取Oracle数据库中的CLOB(Character Large Object)类型字段是至关重要的技能。CLOB数据类型主要用于存储大量的文本信息,如文章、报告...

    Hibernate存储Clob字段的方式总结

    Hibernate存储Clob字段的方式总结涉及了在Java开发中使用Hibernate操作大型文本字段Clob的操作方法。本文主要介绍了两种操作Clob字段的方法,一种是将Clob字段直接映射为String类型,另一种是使用Clob类型进行处理。...

    Oracle导出Clob,Blob工具版本2

    "Oracle导出Clob,Blob工具版本2" 是一个专为解决这个问题而设计的应用程序,它改进了对CLOB(Character Large Object)和BLOB(Binary Large Object)数据类型的导出效率,特别是修复了上一版本中导出时间过长的问题...

    关于oracle中clob字段查询慢的问题及解决方法

    在Oracle数据库中,CLOB(Character Large Object)字段主要用于存储大量文本数据,如XML文档、长篇文章等。然而,由于其大数据量的特性,当涉及到CLOB字段的查询时,性能问题常常会出现,特别是进行模糊查询时。这...

    向Oracle数据库插入Clob大段文本解决方法

    本文将详细介绍如何有效地向Oracle数据库插入Clob大段文本,以及在操作过程中可能遇到的问题与解决方案。 ### 一、理解CLOB类型 CLOB类型是Oracle数据库中用于存储大量文本数据的数据类型,它可以存储最大为4GB的...

    Oracle如何对CLOB行字段来执行全文检索

    Oracle CLOB 行字段全文检索实现方法 Oracle 数据库中,CLOB 行字段是一种常用的数据类型,用于存储大文本数据。然而,在 Oracle8i 版本之前,对大字段 CLOB 仍然不支持在 where 子句直接的 Like 操作。这使得...

Global site tag (gtag.js) - Google Analytics