我是靠谱客的博主 受伤悟空,最近开发中收集的这篇文章主要介绍java.sql.Blob与oracle.sql.BLOB问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1,java.sql.Blob与oracle.sql.BLOB
   这两个blob仅仅是大小写不同,但是差异很大,java.sql.Blob是一个接口,而oracle.sql.BLOB是一个实现java.sql.Blob的类,并且还有很多扩展的属性和方法,注意不要搞混了。
2,JDBC2.0和JDBC3.0的问题
    classes12.zip实现了JDBC2.0(JDK1.3),而JDBC2.0对于Blob的操作只有读,没有写,所以classes12.zip只好自己扩展了一套对Blob进行写的API,我的例子就是用了这套API。
    ojdbc14.jar实现了JDBC3.0(JDK1.4),JDBC3.0已经包括了对Blob写的操作,而ojdbc14.jar也实现了该API。


java.sql.Blob blob = rs.getBlob("ZIP_DA TA");
oracle.sql.BLOB obb = (oracle.sql.BLOB) blob;//这样它会报.ClassCastException->解决办法,那一个封装类来处理类型不匹配问题:
public int setBytes(long pos, byte[] bytes) throws SQLException
    {
//[weblogic]
        if (blob instanceof weblogic.jdbc.vendor.oracle.OracleThinBlob)
        {
            weblogic.jdbc.vendor.oracle.OracleThinBlob oBlob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) blob;
            return  oBlob.putBytes(pos, bytes);
        }
//[endweblogic]
//[websphere]
       
        if (blob instanceof oracle.sql.BLOB)
        {
            oracle.sql.BLOB oBlob = (oracle.sql.BLOB) blob;
            return   oBlob.putBytes(pos, bytes);
        }
//[endwebsphere]
       
        return this.blob.setBytes(pos, bytes);
}

虽然只列出了一个方法,但核心就在这里了

BossThinBlob bossThinBlob = new BossThinBlob(rs.getBlob("ZIP_DA TA"));

最后

以上就是受伤悟空为你收集整理的java.sql.Blob与oracle.sql.BLOB问题的全部内容,希望文章能够帮你解决java.sql.Blob与oracle.sql.BLOB问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部