欢迎您的到来!本空间用来记录日常工作心得和一些小经验.内容可能部分摘自您的辛苦创作,再次对您表示感谢.希望本空间能给您或者其他朋友一些帮助. PS:寻求福州ORACLE DBA工作,期待您的惠顾(kugooo@live.cn)

关于spring+hibernate处理CLOB字段问题

上一篇 / 下一篇  2008-02-03 00:19:11 / 个人分类:Hibernate

最近在用dwr+spring+hibernate开发一个小的东东,其间需要对ORACLE的大数据类型CLOB字段进行插入操作,发现CLOB字段不像一般数据类型那么处理简单。在查阅了许多资料后,终于找到了解决途经。现把解决过程跟大家分享一下:
"XD{9g] I.L01.spring配置:
2KQl1q{)?8I!J0<bean id="nativeJdbcExtractor"
$nrEec FD^0class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
[1R0?|.Y4B&K#c:t*Eu0  lazy-init="true" />ITPUB个人空间(kaw$E:@ Na{%k
<bean id="lobHandler"
8@yO O vw2^4K3x0  class="org.springframework.jdbc.support.lob.OracleLobHandler"ITPUB个人空间V(u?8H;eLz
  lazy-init="true">ITPUB个人空间4W t/QH i9E{
  <property name="nativeJdbcExtractor">
~XJ_3? m:F0   <ref local="nativeJdbcExtractor" />
AHy5p(z `Fg`0  </property>
G5[Es q.ut"SdJ`0</bean>
ITPUB个人空间9aLT W-T#A3yCe
    <!-- Hibernate SessionFactory -->ITPUB个人空间s-d5On6D^6Qo
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">ITPUB个人空间5KOy'~D[
        <property name="dataSource" ref="dataSource"/>ITPUB个人空间$t%r(R/ntav)p
<property name="lobHandler" ref="lobHandler" />ITPUB个人空间c[R'`2RO'aYp:I
  <property name="mappingDirectoryLocations">ITPUB个人空间*C6q(|;p3j F2a
   <list>
7WBoc]U e['J PR0    <value>classpath:/com/ffcs/crm/models</value>
3Zvn8E}"g0?G"TO0   </list>ITPUB个人空间 kg#i C\ ]$d'Pc g&ik
  </property>
@eX)Gt5{0        <property name="hibernateProperties">ITPUB个人空间7MTd(Ep^
            <props>ITPUB个人空间s De"r4t-K6YO
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>ITPUB个人空间(g:}#H1G&z%DS!D nm)d
                <prop key="hibernate.query.substitutions">true 'Y', false 'N'</prop>ITPUB个人空间3xN{(@D/V sS D!RjB
                <prop key="hibernate.show_sql">true</prop>
BGMgpLSP0                <prop key="hibernate.cglib.use_reflection_optimizer">false</prop>
/ewY R;?.sX't0            </props>
O6~.`.Sp]0        </property>
HB^P5YU0    </bean>
)Tv6\ c_z02.Hibernate映射文件配置:ITPUB个人空间+C,c'b L(Lm6~:i
    <propertyITPUB个人空间_Z6r&zU[9]
        name="content"ITPUB个人空间8ZB;g)jnE Rk!xPn
        type="org.springframework.orm.hibernate3.support.ClobStringType"
;GCsLn)\(^:m2M-R0        column="CONTENT"ITPUB个人空间%hv]3~5c2Hpw'P
        length="4000"ITPUB个人空间)V @E:rFPf
    >
N8T4Bs&iS![o!k03.PO的seter/geter:
S4It7oH0private String content;ITPUB个人空间c c;W I7Yy
public String getContent() {ITPUB个人空间A5db}1M fO2@5q
  return content;ITPUB个人空间)}uOeHFv7~iHS
}ITPUB个人空间4|O1@"e |q
public void setContent(String content) {
A$\u+Bbi ?T+u0  this.content = content;ITPUB个人空间7xB-`3w1K#g,zdr
}ITPUB个人空间W/Z'_ x } Zf
4.在service层我们就可以直接将VO的content直接set进PO就OK,跟一般数据类型一样处理。
!c1k,RW T+bfX'z0
R2xTD(VW0OK了!ITPUB个人空间"JLkpaD5o8j&SA
是不是很简单?之前一直在寻找hibernate 对CLOB的支持,试过很多方法后都没有成功,后来发现spring竟然对LOB有很好的支持。

TAG: hibernate spring dwr clob

引用 删除 Guest   /   2012-02-07 14:44:43
5
引用 删除 placeholder   /   2010-12-03 11:51:28
标红色的部分...下面疏忽
引用 删除 placeholder   /   2010-12-03 11:45:27
表空色的部分很有价值,谢谢博主,解决了问题。用jdk1.6.0_21+apache-tomcat-6.0.29+ojdbc14.jar没做特殊配置却可以像操作String一样操作CLOB,原因不详。
引用 删除 老三   /   2010-10-21 17:12:26
大于4000也没问题,我测试了
谢了哥们,找了半天,就这篇讲的利索干净
引用 删除 Guest   /   2009-06-06 09:23:01
你这样的配置在数据小于4000时是可以的,但是大于4000会抛异常
引用 删除 27tt   /   2009-03-15 22:09:25
文本大于4000的时候呢?
引用 删除 倚梦   /   2009-03-09 21:15:15
"按照你说的 我修改了 可是save无效了 而且不报错 是不是需要改什么 自动提交的东西啊? "我也碰到同样的问题
引用 删除 过路人   /   2008-11-23 16:58:31
但是如果我是用的SQL的方式而没用实体映射就不行,执行creatSqlQuery().list();就要报java.lang.numberformatexception :for input string:429496729错!
引用 删除 kenkenken321   /   2008-06-06 09:57:20
按照你说的 我修改了 可是save无效了 而且不报错 是不是需要改什么 自动提交的东西啊?
引用 删除 Guest   /   2008-05-17 22:56:38
不错
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2012-02-10  
   1234
567891011
12131415161718
19202122232425
26272829   

数据统计

  • 访问量: 4950
  • 日志数: 17
  • 文件数: 1
  • 建立时间: 2007-12-25
  • 更新时间: 2008-09-03

RSS订阅

Open Toolbar