Hibernate操作Oarcle中Clob、Blob字段小结
?? blog迁移至:http://www.micmiu.com
?
最近常碰到有人问如何运用Hibernate操作Oracle中的Clob、Blob字段,相关问题大概如下几种:
如何读、写数据库中的Clob、Blob字段?注释方式或者映射文件两种方式是如何实现的?Clob字段是否可当成一般String来操作?为什么Clob字段插入正常,但是读取时却为nullJDBC的驱动是不是需要最新的,才能支持Clob当成String?JDBC驱动不更新,有没有办法实现Clob当成String操作?。。。。。等等这些问题下面我将以不同的实现方式的分别来演示,上述提到的问题答案将在具体的实例中给出详细的答案。本文目录:
[一]、Clob字段 - 注解方式的实现[二]、Clob字段 - 映射文件的实现[三]、Blob字段 - 注解方式的实现[四]、Blob字段 - 映射文件的实现???? 测试的相关源代码:bigstring_oracle_src.7z
?
[一]、Clob字段 - 注解方式的实现
?
?? 域对象:TbBigStrClob.java
?
?? Hibernate 配置文件:hibernate.cfg.xml
?
??? 测试程序:
?运行结果:
??? 映射文件:tb_bigstr.hb.xml
?
? 在hibernate.cfg.xml文件中增加域对象的映射文件:
?
?? 测试程序:
?
?? 运行结果如下:
?
?? 在hibernate.cfg.xml中增加域对象:
?? 运行测试程序:
?
运行结果如下:
映射文件:tb_bigstr.hb.xml
?? 测试程序:
?? 运行结果如下:
../../hibernate.cfg.xml configure
Hibernate: select bigstrblob0_.id as id1_, bigstrblob0_.NAME as NAME1_, bigstrblob0_.CONTENT as CONTENT1_ from MY_HB_BIG_STR_BLOB bigstrblob0_
start to init blob data
Hibernate: select max(id) from MY_HB_BIG_STR_BLOB
Hibernate: insert into MY_HB_BIG_STR_BLOB (NAME, CONTENT, id) values (?, ?, ?)
Hibernate: insert into MY_HB_BIG_STR_BLOB (NAME, CONTENT, id) values (?, ?, ?)
Hibernate: insert into MY_HB_BIG_STR_BLOB (NAME, CONTENT, id) values (?, ?, ?)
Hibernate: insert into MY_HB_BIG_STR_BLOB (NAME, CONTENT, id) values (?, ?, ?)
Hibernate: insert into MY_HB_BIG_STR_BLOB (NAME, CONTENT, id) values (?, ?, ?)
Hibernate: select bigstrblob0_.id as id1_, bigstrblob0_.NAME as NAME1_, bigstrblob0_.CONTENT as CONTENT1_ from MY_HB_BIG_STR_BLOB bigstrblob0_
Query data list size = 5
BigStrBlob :: id = [1],name = [test_1],content = [我是大字段<Blob>,at date:Mon Aug 22 13:47:50 CST 2011].
BigStrBlob :: id = [2],name = [test_2],content = [我是大字段<Blob>,at date:Mon Aug 22 13:47:50 CST 2011].
BigStrBlob :: id = [3],name = [test_3],content = [我是大字段<Blob>,at date:Mon Aug 22 13:47:50 CST 2011].
BigStrBlob :: id = [4],name = [test_4],content = [我是大字段<Blob>,at date:Mon Aug 22 13:47:50 CST 2011].
BigStrBlob :: id = [5],name = [test_5],content = [我是大字段<Blob>,at date:Mon Aug 22 13:47:50 CST 2011].??? 从运行结果可见:映射文件的方式下,插入Blob数据和读取Blob数据均正常
?
??? Tips:对于是映射文件的方式,Blob字段的类型指定为binary即:type="binary"
?
?
?
本文连接:http://sjsky.iteye.com/blog/1154916
?
?
转载请注明来自:Michael's blog @ http://sjsky.iteye.com
----------------------------- 分 ------------------------------ 隔 ------------------------------ 线 ------------------------------?
?
?
1 楼 gzcsschen 2011-12-22 你这个对小于4000的没问题
大了就会出问题 2 楼 sjsky 2011-12-26 gzcsschen 写道你这个对小于4000的没问题
大了就会出问题
这个我有时间测试下的 ,奇怪了