Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103573514
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-30 21:34:01

对于BLOG和CLOB字段,大部分数据库提供了较为透明的支持,但Oracle比较特殊一些,在用Spring和Hibernate操作时,需要作一些特殊的处理,以CLOB为例,基本有下面几个步骤[注:下面大部分内容来自于网络]:

1、在Spring的配置文件中加入以下几个Bean的定义





2、在sessionFactory这个Bean中加入一个属性的引用

3、在需要clob的JavaBean对应的hbm.xml中,改对应的clob类型的字段
name="XXX" type="org.springframework.orm.hibernate3.support.ClobStringType"
clumn=""
length="XXX"
/>

4、 JavaBean的对应的属性类型为String。

基本上是这四个要点。需要注意两点:(1)如果使用Oracle9i自带的class12.jar这个JDBC驱动的话是不行的,会报错,据说要升级到classes12-9i.jar,我在Oracle的网站上没找到对应的下载,下载了ojdbc14.jar就可以了。(2)对Clob或Blog的操作必须在一个事务中进行,如在Dao层测试会出错,在配置了事务的Logic层就没问题了。

据说如果用Oracle10g的JDBC驱动就没这么麻烦了,下面一段说来自网络,没有验证测试过:

Hibernate+Oracle+CLOB的读写其实只要这样做:

1.在Oracle里设置某字段为clob类型。
2.在Hibernate的配置文件里使用网上下载的Oracle 10g最新的jdbc驱动。
3.实体类里把clob字段对应的属性类型设置为String。
4.hibernate的映射文件*.hbm.xml里把该字段对应的类型该为text。

然后就可以在程序里把它当成String随便用了。

补充:按照上面的方法又写了一个测试类,能够操作Clob字段了,但是启动JBOSS后就不能用了,后来找了很久才发现,原来我用的JBOSS的default/lib目录下也有一下老版本的Class12.jar,删除它换成最新的ojdbc14.jar就可以了。

 

原文:http://yanhua365.blog.ccidnet.com/blog-htm-itemid-59603-do-showone-type-blog-uid-22012.html

阅读(494) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~