论坛首页 Java企业应用论坛

关于Clob类型在Hibernate中的应用小结

浏览 53150 次
该帖已经被评为精华帖
作者 正文
   发表时间:2005-09-23  
tqyq 写道
oracle 10g 的驱动的确好 
thin driver 也能顺利按照 String 方式处理 Clob 字段,可以适用于 8.16 以后的所有版本   


真的假的喔,这我倒要试试,
10G的驱动有谁有,麻烦共享一下。
0 请登录后投票
   发表时间:2005-09-23  
dkmilk 写道
tqyq 写道
oracle 10g 的驱动的确好 
thin driver 也能顺利按照 String 方式处理 Clob 字段,可以适用于 8.16 以后的所有版本   


真的假的喔,这我倒要试试,
10G的驱动有谁有,麻烦共享一下。


去Oracle网站自行下载!懒人
0 请登录后投票
   发表时间:2005-11-22  
:D 谢谢大家,总算解决问题了,改动也不大
0 请登录后投票
   发表时间:2005-12-14  
映射成text在同一列中有多个clob字段的时候有bug,
保存时会将后一个字段的内容保存到前一个字段里面去,不知道什么原因,我实在有些莫名其妙。
换成spring的ClobStringType后一切正常
0 请登录后投票
   发表时间:2006-05-18  
经测试,使用 Oracle 10g 的 JDBC 驱动,可以把 LONG 类型的字段当成超长的 VARCHAR2 类型字段看待。
注意:数据库中应该使用 LONG 型,而不是 CLOB 类型。使用 CLOB 类型,如果有中文,会莫名其妙的丢掉一些字符。这应该是 Oracle 的一个 bug。
适用于 Oracle 9.2 以上版本的数据库。(注意仅仅是使用 10g 的 JDBC 驱动而已,即 ojdbc14.jar 包)

参考:
* Oracle JDBC 驱动下载地址 http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html
* Handling CLOBs - Made easy with Oracle JDBC 10g http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/clob10g/handlingclobsinoraclejdbc10g.html
0 请登录后投票
   发表时间:2006-05-19  
就没有人用db2的么?
0 请登录后投票
   发表时间:2006-07-10  
如果想让Oracle9.2支持多语言(英文、简体中文、繁体中文),数据库字符集是否一定要指定为unicode(utf-8 ) ? 还是说只要将哪些需要多语言支持的字段设置为NVarchar2、Clob? 只是插入的时候使用utf-8做转码?


HH 写道
经测试,使用 Oracle 10g 的 JDBC 驱动,可以把 LONG 类型的字段当成超长的 VARCHAR2 类型字段看待。
注意:数据库中应该使用 LONG 型,而不是 CLOB 类型。使用 CLOB 类型,如果有中文,会莫名其妙的丢掉一些字符。这应该是 Oracle 的一个 bug。
适用于 Oracle 9.2 以上版本的数据库。(注意仅仅是使用 10g 的 JDBC 驱动而已,即 ojdbc14.jar 包)

参考:
* Oracle JDBC 驱动下载地址 http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html
* Handling CLOBs - Made easy with Oracle JDBC 10g http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/clob10g/handlingclobsinoraclejdbc10g.html
0 请登录后投票
   发表时间:2007-06-18  
但是,如果需要在原来的CLOB字段中填写较大的字符(比如1.8M的字符流),采用robbin所说的setString方法就不行了,因为Oracle的varchar2允许的varchar2最大长度为32767字节,用CLOB(最大4G)不就是为了很好的解决大字段值插入的问题嘛。
0 请登录后投票
   发表时间:2007-06-19  
还是用spring提供的ClobStringType、BlobByteArrayType、BlobSerializableType

和LobHandler(DefaultLobHandler,OracleLobHandler)来处理Clob/Blob比较好。
0 请登录后投票
   发表时间:2007-06-21  
引用
也就是说,如果你使用最新的Oracle JDBC Driver,使用比较新的Oracle版本,你就可以直接像操作varchar2那样操作clob,没有任何限制了。

如果使用的是oracle9i数据库定义一个UserType也可以做到这一点:
@Column(updatable = true,nullable = true,name="CLOB_TYPE")
	@Type(type="com。my.StringClobType")
	public String getNotes() {
		return notes;
	}
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics