最近项目中(SSH2+ORACLE 10g)出现对长字符串处理的问题终于搞定了,在此记录一下
表中有一个字段 content clob
create table table_name
(
...
content clob not null,
...
)
(1)在使用ojdbc14.jar的情况下(批量处理有影响)
使用注解
@Lob
@Basic(fetch = FetchType.EAGER)
@Column(columnDefinition="CLOB", nullable=false)
public String getContent() {
return content;
}
如果设置了
<!-- 数据库批量更新数 -->
hibernate.jdbc.batch_size=0
此时是没问题的
但设置了批量更新数的话就不可以了 如
hibernate.jdbc.batch_size=30
当汉字字符串长度大于666,插入数据必须使用流式方式,且最大长度不能超过2000个中文字符.当采用流式方式插入数据时,不能使用批处理
原因是PreparedStatement.setStringindex,StringValue)方法对StringValue的char长度有限制,并且一个中文字符占3个char,故只能输入666个汉字。插入英文字符时,至多只能插入2000个
(2)在使用classes12.jar的情况下(批量处理没有影响)
直接使用注解即可
@Lob
@Basic(fetch = FetchType.EAGER)
@Column(columnDefinition="CLOB", nullable=false)
public String getContent() {
return content;
}
或者使用
@Type(type="org.springframework.orm.hibernate3.support.ClobStringType")
public String getContent() {
return content;
}
此时要配置一下
<!--定义一个 lobHandler-->
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" />
<!--lobHandler必须注入到Hibernate会话工厂sessionFactory中-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="lobHandler" ref="lobHandler"/>
...
</bean>
至此 对象中直接申明成String就可以处理clob类型
分享到:
相关推荐
当ORACLE需要存放一些不定长而长度又长于4000字符的字符串时,可考虑使用ORACLE的CLOB类型进行存储,此时就要将该字符串转化为CLOB类型。
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
ORACLE中CLOB字段转String类型
CLOB字段类型报错 ORA-01704:文字字符串过长的解决
oracle Blob转换Clob
运用Java如何存取Oracle中的CLOB类型字段
java操作oracle clob,基础教程,教你clob在java中的用法,简单易学。
hibernate动态映射表处理oralce10g的clob类型,压缩包为整个工程包. 真诚地希望能帮到你,同时真诚地希望你能和我交流, about any question^_^
把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来
hibernate存取oracle的clob
关于Oracle的 Clob数据类型在Hibernate中的应用小结
向Oracle数据库插入Clob大段文本解决方法
在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误,有类似情况的朋友可以参考下
介绍了利用Hibernate将一个长字符串转换为流存储至Clob字段中,然后再从Clob字段中读出来,转换为字符串输出的方式
关于Clob类型在Hibernate中 的应用小结关于Clob类型在Hibernate中 的应用小结关于Clob类型在Hibernate中 的应用小结关于Clob类型在Hibernate中 的应用小结
sql server中的image类型的数据导出到oracle的clob字段中
Oralce长字符的处理,CLOB字处理,带数据库。