模块  java.sql
软件包  java.sql

Interface Blob

  • 所有已知实现类:
    SerialBlob

    public interface Blob
    SQL BLOB值的BLOB “¢编程语言中的表示(映射)。 SQL BLOB是一种内置类型,它将二进制大对象存储为数据库表的一行中的列值。 默认情况下,驱动程序使用SQL locator(BLOB)实现Blob ,这意味着Blob对象包含指向SQL BLOB数据的逻辑指针,而不是数据本身。 Blob对象在创建事务的持续时间内有效。

    方法在接口ResultSetCallableStatement ,并PreparedStatement ,如getBlobsetBlob允许编程人员访问SQL BLOB值。 Blob接口提供了获取SQL BLOB (二进制大对象)值的长度的方法,用于在客户端上实现BLOB值,以及确定BLOB值内的字节模式的位置。 此外,此接口还具有更新BLOB值的方法。

    如果JDBC驱动程序支持数据类型,则必须完全实现Blob接口上的所有方法。

    从以下版本开始:
    1.2
    • 方法摘要

      所有方法  实例方法 抽象方法 
      变量和类型 方法 描述
      void free()
      此方法释放 Blob对象并释放它所拥有的资源。
      InputStream getBinaryStream()
      以流的 BLOB检索此 Blob实例指定的 BLOB值。
      InputStream getBinaryStream​(long pos, long length)
      返回 InputStream对象,该对象包含部分 Blob值,以pos指定的字节开头,长度为length个字节。
      byte[] getBytes​(long pos, int length)
      检索此 Blob对象表示的 BLOB值的全部或部分,作为字节数组。
      long length()
      返回此 Blob对象指定的 BLOB值中的字节数。
      long position​(byte[] pattern, long start)
      检索指定字节数组 pattern在此 Blob对象表示的 BLOB值内开始的字节位置。
      long position​(Blob pattern, long start)
      检索此 Blob对象指定的 BLOB值中的字节位置, pattern开始于该对象。
      OutputStream setBinaryStream​(long pos)
      检索可用于写入此 Blob对象表示的 BLOB值的流。
      int setBytes​(long pos, byte[] bytes)
      将给定的字节数组写入此 Blob对象所代表的 BLOB值,从位置 pos开始,并返回写入的字节数。
      int setBytes​(long pos, byte[] bytes, int offset, int len)
      将给定 byte数组的全部或部分写入此 Blob对象表示的 BLOB值,并返回写入的字节数。
      void truncate​(long len)
      截断此 Blob对象表示的 BLOB值为 len字节长度。
    • 方法详细信息

      • length

        long length()
             throws SQLException
        返回此 Blob对象指定的 BLOB值中的字节数。
        结果
        BLOB长度,以字节为单位
        异常
        SQLException - 如果访问 BLOB的长度时 BLOB
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.2
      • getBytes

        byte[] getBytes​(long pos,
                        int length)
                 throws SQLException
        检索此Blob对象表示的BLOB值的全部或部分,作为字节数组。 byte数组包含从位置pos开始的最多length个连续字节。
        参数
        pos - 要提取的BLOB值中第一个字节的序号位置; 第一个字节位于第1位
        length - 要复制的连续字节数; length的值必须为0或更大
        结果
        一个字节数组,最多包含 length连续字节,该字节来自此 Blob对象指定的 BLOB值,以 Blob位置的字节 pos
        异常
        SQLException - 如果访问BLOB值时出错; 如果pos小于1或长度小于0
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.2
        另请参见:
        setBytes(long, byte[])
      • position

        long position​(byte[] pattern,
                      long start)
               throws SQLException
        检索指定的字节数组patternBlob对象表示的BLOB值内开始的字节位置。 搜索patternstart
        参数
        pattern - 要搜索的字节数组
        start - 开始搜索的位置; 第一个位置是1
        结果
        模式出现的位置,否则为-1
        异常
        SQLException - 如果访问 BLOB或者start小于1
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.2
      • position

        long position​(Blob pattern,
                      long start)
               throws SQLException
        检索此Blob对象指定的BLOB值中的字节位置, pattern开始于该对象。 搜索从位置start开始。
        参数
        pattern - 指定要搜索的 BLOB值的 Blob对象
        start - BLOB值中开始搜索的位置; 第一个位置是1
        结果
        模式开始的位置,否则为-1
        异常
        SQLException - 如果访问 BLOB值时出错或者start小于1
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.2
      • setBytes

        int setBytes​(long pos,
                     byte[] bytes)
              throws SQLException
        将给定的字节数组写入此Blob对象所代表的BLOB值,从位置pos开始,并返回写入的字节数。 字节阵列将覆盖在现有的字节Blob对象开始在位置pos 如果的端Blob而写入的字节的阵列达到值,则长度Blob值将增加以容纳额外的字节。

        注意:如果为pos指定的值大于BLOB值的长度+ 1,则行为未定义。 某些JDBC驱动程序可能会抛出SQLException而其他驱动程序可能支持此操作。

        参数
        pos - BLOB对象中开始写入的位置; 第一个位置是1
        bytes - 要写入此 Blob对象表示的 BLOB值的字节数组
        结果
        写入的字节数
        异常
        SQLException - 如果访问 BLOB值时出错或者pos小于1
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.4
        另请参见:
        getBytes(long, int)
      • setBytes

        int setBytes​(long pos,
                     byte[] bytes,
                     int offset,
                     int len)
              throws SQLException
        将给定byte数组的全部或部分写入此Blob对象表示的BLOB值,并返回写入的字节数。 写作开始于位置posBLOB值; len来自给定字节数组的len字节。 字节阵列将覆盖在现有的字节Blob对象开始在位置pos 如果的端Blob而写入的字节的阵列达到值,则长度Blob值将增加以容纳额外的字节。

        注意:如果为pos指定的值大于BLOB值的长度+ 1,则行为未定义。 某些JDBC驱动程序可能会抛出SQLException而其他驱动程序可能支持此操作。

        参数
        pos - BLOB对象中开始写入的位置; 第一个位置是1
        bytes - 要写入此 BLOB对象的字节数组
        offset - 数组 bytes的偏移量,在该数组中开始读取要设置的字节
        len - 从字节数组 BLOB写入 BLOB值的字节 bytes
        结果
        写入的字节数
        异常
        SQLException - 如果访问 BLOB值时出错或者pos小于1
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.4
        另请参见:
        getBytes(long, int)
      • setBinaryStream

        OutputStream setBinaryStream​(long pos)
                              throws SQLException
        检索可用于写入此Blob对象表示的BLOB值的流。 该流开始于位置pos 写入流的字节将覆盖Blob对象中的现有字节,从位置pos 如果的端Blob当写入到流达到的值,则长度Blob值将增加以容纳额外的字节。

        注意:如果为pos指定的值大于BLOB值的长度+ 1,则行为未定义。 某些JDBC驱动程序可能会抛出SQLException而其他驱动程序可能支持此操作。

        参数
        pos - BLOB值中开始写入的位置; 第一个位置是1
        结果
        可以写入数据的 java.io.OutputStream对象
        异常
        SQLException - 如果访问 BLOB值时出错或者pos小于1
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.4
        另请参见:
        getBinaryStream()
      • truncate

        void truncate​(long len)
               throws SQLException
        截断此Blob对象表示的BLOB值为len字节长度。

        注意:如果为pos指定的值大于BLOB值的长度+ 1,则行为未定义。 某些JDBC驱动程序可能会抛出SQLException而其他驱动程序可能支持此操作。

        参数
        len - 此 Blob对象表示的 BLOB值应截断的长度(以字节为单位)
        异常
        SQLException - 如果访问 BLOB值时出错,或者len小于0
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.4
      • free

        void free()
           throws SQLException
        此方法释放Blob对象并释放它所拥有的资源。 调用free方法后,该对象无效。

        调用free后,任何调用free以外的方法的尝试free将导致抛出SQLException 如果free被多次调用,在后续调用free被视为无操作。

        异常
        SQLException - 如果发布Blob资源时发生错误
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.6
      • getBinaryStream

        InputStream getBinaryStream​(long pos,
                                    long length)
                             throws SQLException
        返回一个 InputStream对象,该对象包含一个部分 Blob值,以pos指定的字节开头,长度为length个字节。
        参数
        pos - 要检索的部分值的第一个字节的偏移量。 Blob的第一个字节位于第1位。
        length - 要检索的部分值的长度(以字节为单位)
        结果
        InputStream ,通过该局部 Blob值可被读取。
        异常
        SQLException - 如果pos小于1或者如果pos大于 Blob的字节数,或者如果pos + length大于 Blob的字节数
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.6