Module  java.sql
软件包  java.sql

Interface Blob

  • 所有已知实现类:
    SerialBlob


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

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

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

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

      所有方法  接口方法  抽象方法 
      Modifier and Type 方法 描述
      void free​()
      该方法可以释放 Blob对象并释放它所拥有的资源。
      InputStream getBinaryStream​()
      检索由该 Blob实例指定的 BLOB值作为流。
      InputStream getBinaryStream​(long pos, long length)
      返回一个包含部分 Blob值的 InputStream对象,从pos指定的字节开始,长度为字节长度。
      byte[] getBytes​(long pos, int length)
      检索 Blob对象所代表的 BLOB全部或部分值,作为字节数组。
      long length​()
      返回此 Blob对象指定的 BLOB值中的字节数。
      long position​(byte[] pattern, long start)
      检索指定字节数组 patternBlob对象表示的 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的长度有错误
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.2
      • getBytes

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

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

        long position​(Blob pattern,
                      long start)
               throws SQLException
        检索由pattern开始的Blob对象指定的BLOB值中的字节位置。 搜索从位置start开始。
        参数
        pattern - Blob对象指定要搜索的 BLOB
        start - 在开始搜索的BLOB值的位置; 第一名是1
        结果
        模式开始的位置,否则为-1
        异常
        SQLException - 如果在访问 BLOB值时出现错误,或者如果起始小于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写入的字节数 bytes
        结果
        写入的字节数
        异常
        SQLException - 如果存在访问 BLOB值的错误或者pos小于1
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.4
        另请参见:
        getBytes(long, int)
      • setBinaryStream

        OutputStream setBinaryStream​(long pos)
                              throws SQLException
        检索可用于写入Blob对象表示的值的BLOB值的流。 流从位置pos开始。 写入流的字节将覆盖从位置pos开始的Blob对象中的现有字节。 如果在写入流时达到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对象表示的长度为len个字节的BLOB值。

        注意:如果为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以外的方法的尝试将导致抛出SQLException 如果free被多次调用,在后续调用free被视为无操作。

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

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