dev2dev.bea.com.cn
首页 资源中心 dev2dev学堂 在线技术论坛 专家Blog User Group CodeShare

用JDBC写入Blob型数据到Oracle数据库表中

2007-10-25 13:43:07 | 评论 (1) | 被访问(406)次

伍卫贤
  2000开始涉足J2EE开发,擅长与系统分析和架构设计,现专注于用SOA构建企业级应用和应用的集成。


 Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据。

写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,那么如何获得Blob的cursor呢?

这需要你先插入一个empty的blob,这将创建一个blob的cursor,然后你再把这个empty的blob的cursor用select查询出来,这样通过两步操作,你就获得了blob的cursor,可以真正的写入blob数据了。

分三步:

1、插入空blob
into tablename(filed1,blobfiled) values(?,empty_blob());

2、获得blob的cursor
select blobfiled from tablename where filed1= ? for update;

注意!!!必须加for update,这将锁定该行,直至该行被修改完毕,保证不产生并发冲突。

3、update tablename set blobfiled=? where filed1=?

用cursor往数据库写数据

这里面还有一点要提醒大家:

JDK1.3带的JDBC2.0规范是不完善的,只有读Blob的接口,而没有写Blob的接口,JDK1.4带的JDBC3.0加入了写Blob的接口。你可以使用JDBC3.0的接口,也可以直接使用Oracle的JDBC的API。

另外要注意的是:

java.sql.Blob
oracle.sql.BLOB

注意看blob的大小写,是不一样的。写程序的时候不要搞混了。



Tags: Java JDBC Blob Oracle
文章评论:(以下网友留言只代表个人观点,不代表BEA观点和立场)
回复人: axman  2007-10-25 15:20:37

别搞笑了,JDBC1.0就可以写blob.只是看你如何写,这种基本技能至少在2000年就解决了.

2007年10月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
             
RSS订阅

伍卫贤's Blog搜索

Archives

2007年10月