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

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

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

最近在用dwr+spring+hibernate开发一个小的东东,其间需要对ORACLE的大数据类型CLOB字段进行插入操作,发现CLOB字段不像一般数据类型那么处理简单。在查阅了许多资料后,终于找到了解决途经。现把解决过程跟大家分享一下:ITPUB个人空间1rB'IS&mS*{
1.spring配置:ITPUB个人空间~5zZ)C%O'i
<bean id="nativeJdbcExtractor"
^,D@'}'^3R^N0class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
O,{?Mh0  lazy-init="true" />ITPUB个人空间1N V x(xz9X2zq:l
<bean id="lobHandler"
8vkk%J6KJ3aR r/G0  class="org.springframework.jdbc.support.lob.OracleLobHandler"
1\ h2G[3a6rq4w0  lazy-init="true">
zX.R&w#M:~W!Iq0  <property name="nativeJdbcExtractor">ITPUB个人空间C apvsB4om1B
   <ref local="nativeJdbcExtractor" />
a6ZO5d}JL@~0  </property>ITPUB个人空间*kq:MG`)wr9z
</bean>
ITPUB个人空间&n7^ W b0f}
    <!-- Hibernate SessionFactory -->
XNy?7E0    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
6F Wa3Ea|&r0h3r0        <property name="dataSource" ref="dataSource"/>
!N+r2J9C'OY1}P g0<property name="lobHandler" ref="lobHandler" />ITPUB个人空间!Ku gO8d @)Wf-ew%c%^
  <property name="mappingDirectoryLocations">
D ?C4bK)|ou[@W.o0   <list>ITPUB个人空间T-m,@"t&`7D_1rjd
    <value>classpath:/com/ffcs/crm/models</value>
X'cOI r%t[!W0^8L+?'|0   </list>ITPUB个人空间 NL+ej:d9[#Am
  </property>ITPUB个人空间T.V LA1XP Q(e
        <property name="hibernateProperties">ITPUB个人空间;_:\ z7K&t~*SZ
            <props>ITPUB个人空间1L5Y]6d TK
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
z3}3KQd|mt/V0                <prop key="hibernate.query.substitutions">true 'Y', false 'N'</prop>
X"h/{Jo(I)p)q0                <prop key="hibernate.show_sql">true</prop>ITPUB个人空间*V-uSf9|+{L!\
                <prop key="hibernate.cglib.use_reflection_optimizer">false</prop>
%F.YO:j9ZVOA0            </props>
,?Q6L7~ H,t0        </property>
Bp)D,O NAM0    </bean>
Nk3iQma,\6N(|2Y02.Hibernate映射文件配置:
~*JN'z4T"c9k.D0    <propertyITPUB个人空间 Ng*|)^ qs.EDC"F
        name="content"ITPUB个人空间BEJ g|i ~.h
        type="org.springframework.orm.hibernate3.support.ClobStringType"ITPUB个人空间'l9@*h]G7N2~
        column="CONTENT"
f0q0m%K9A(]Y2t1P0        length="4000"ITPUB个人空间9X S \%w)Ry`v.P
    >
IOsZV3h03.PO的seter/geter:ITPUB个人空间d)s0nX z@2MX
private String content;ITPUB个人空间!y(@suBB
public String getContent() {ITPUB个人空间xS Z_l
  return content;ITPUB个人空间G _ne:?T:b o
}ITPUB个人空间9UiS#B9@5~kG{
public void setContent(String content) {
W`)^Z1R'`u b/U0  this.content = content;ITPUB个人空间$w @yUh8tH
}
1c ]6T"m;R X{04.在service层我们就可以直接将VO的content直接set进PO就OK,跟一般数据类型一样处理。ITPUB个人空间)[3aAR j#Y$tH

5X/?{2g7O4S3?m0OK了!
!C8g5x@:T i8B"By*RI0是不是很简单?之前一直在寻找hibernate 对CLOB的支持,试过很多方法后都没有成功,后来发现spring竟然对LOB有很好的支持。

TAG: hibernate spring dwr clob

引用 删除 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 :( :)

日历

« 2009-07-04  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

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

RSS订阅

Open Toolbar