- 所有已知的实现类:
-
SerialBlob
public interface Blob
Java编程语言中SQL
BLOB值的表示(映射)。SQL BLOB是一个内置类型,将二进制大对象作为数据库表中行的列值存储。默认情况下,驱动程序使用SQL locator(BLOB)来实现Blob,这意味着Blob对象包含对SQL BLOB数据的逻辑指针,而不是数据本身。 Blob对象在创建它的事务期间是有效的。
接口ResultSet、CallableStatement和PreparedStatement中的方法,如getBlob和setBlob,允许程序员访问SQL BLOB值。 Blob接口提供了获取SQL BLOB(二进制大对象)值长度的方法,在客户端实现BLOB值的方法,以及确定BLOB值中字节模式位置的方法。此外,此接口还具有更新BLOB值的方法。
如果JDBC驱动程序支持数据类型,则Blob接口上的所有方法必须完全实现。
- 自版本:
- 1.2
-
Method Summary
Modifier and TypeMethodDescriptionvoidfree()该方法释放Blob对象并释放其持有的资源。检索由此Blob实例指定的BLOB值作为流。getBinaryStream(long pos, long length) 返回一个InputStream对象,其中包含一个部分BLOB值,从指定的字节位置pos开始,长度为length字节。byte[]getBytes(long pos, int length) 检索此Blob对象表示的BLOB值的全部或部分,作为字节数组。longlength()返回由此Blob对象指定的BLOB值中的字节数。longposition(byte[] pattern, long start) 检索此Blob对象表示的BLOB值中指定字节数组pattern开始的字节位置。long检索由此Blob对象指定的BLOB值中pattern开始的字节位置。setBinaryStream(long pos) 检索可用于写入此Blob对象表示的BLOB值的流。intsetBytes(long pos, byte[] bytes) 将给定的字节数组写入此Blob对象表示的BLOB值,从位置pos开始,并返回写入的字节数。intsetBytes(long pos, byte[] bytes, int offset, int len) 将给定的byte数组的全部或部分写入此Blob对象表示的BLOB值,并返回写入的字节数。voidtruncate(long len) 将此Blob对象表示的BLOB值截断为长度为len字节。
-
Method Details
-
length
返回由此Blob对象指定的BLOB值中的字节数。- 返回:
-
BLOB的字节长度 - 抛出:
-
SQLException- 如果访问BLOB的长度时出现错误 -
SQLFeatureNotSupportedException- 如果JDBC驱动程序不支持此方法 - 自版本:
- 1.2
-
getBytes
检索此Blob对象表示的BLOB值的全部或部分,作为字节数组。此byte数组包含从位置pos开始的最多length个连续字节。- 参数:
-
pos- 要提取的BLOB值中第一个字节的序数位置;第一个字节位于位置1 -
length- 要复制的连续字节数;length的值必须为0或更大 - 返回:
-
包含由此
Blob对象指定的BLOB值中最多length个连续字节的字节数组,从位置pos开始 - 抛出:
-
SQLException- 如果访问BLOB值时出现错误;如果pos小于1或length小于0 -
SQLFeatureNotSupportedException- 如果JDBC驱动程序不支持此方法 - 自版本:
- 1.2
- 参见:
-
getBinaryStream
检索由此Blob实例指定的BLOB值作为流。- 返回:
-
包含
BLOB数据的流 - 抛出:
-
SQLException- 如果访问BLOB值时出现错误 -
SQLFeatureNotSupportedException- 如果JDBC驱动程序不支持此方法 - 自版本:
- 1.2
- 参见:
-
position
检索此Blob对象表示的BLOB值中指定字节数组pattern开始的字节位置。从位置start开始搜索pattern。- 参数:
-
pattern- 要搜索的字节数组 -
start- 开始搜索的位置;第一个位置为1 - 返回:
- 出现模式的位置,否则为-1
- 抛出:
-
SQLException- 如果访问BLOB或start小于1时出现错误 -
SQLFeatureNotSupportedException- 如果JDBC驱动程序不支持此方法 - 自版本:
- 1.2
-
position
检索此Blob对象表示的BLOB值中pattern开始的字节位置。搜索从位置start开始。- 参数:
-
pattern- 指定要搜索的BLOB值的Blob对象 -
start- 开始搜索的BLOB值中的位置;第一个位置为1 - 返回:
- 模式开始的位置,否则为-1
- 抛出:
-
SQLException- 如果访问BLOB值或start小于1时出现错误 -
SQLFeatureNotSupportedException- 如果JDBC驱动程序不支持此方法 - 自版本:
- 1.2
-
setBytes
将给定的字节数组写入此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
- 参见:
-
setBytes
将给定的byte数组的全部或部分写入此Blob对象表示的BLOB值,并返回写入的字节数。从BLOB值中的位置pos开始写入;从给定字节数组中写入len字节。字节数组将覆盖Blob对象中从位置pos开始的现有字节。如果在写入字节数组时达到BLOB值的末尾,则BLOB值的长度将增加以容纳额外的字节。注意: 如果为
pos指定的值大于BLOB值的长度+1,则行为是未定义的。一些JDBC驱动程序可能会抛出SQLException,而其他驱动程序可能支持此操作。- 参数:
-
pos- 在写入时BLOB对象中的位置;第一个位置为1 -
bytes- 要写入此BLOB对象的字节数组 -
offset- 在数组bytes中开始读取要设置的字节的偏移量 -
len- 要从字节数组bytes写入BLOB值的字节数 - 返回:
- 写入的字节数
- 抛出:
-
SQLException- 如果访问BLOB值时出现错误,或者pos小于1 -
SQLFeatureNotSupportedException- 如果JDBC驱动程序不支持此方法 - 自版本:
- 1.4
- 参见:
-
setBinaryStream
检索一个流,可用于写入此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
- 参见:
-
truncate
将此Blob对象表示的BLOB值截断为len字节的长度。注意: 如果为
pos指定的值大于BLOB值的长度+1,则行为是未定义的。一些JDBC驱动程序可能会抛出SQLException,而其他驱动程序可能支持此操作。- 参数:
-
len- 要截断为的字节数,即此Blob对象表示的BLOB值 - 抛出:
-
SQLException- 如果访问BLOB值时出现错误,或者len小于0 -
SQLFeatureNotSupportedException- 如果JDBC驱动程序不支持此方法 - 自版本:
- 1.4
-
free
该方法释放Blob对象并释放其持有的资源。一旦调用free方法,对象就无效。在调用
free后,任何尝试调用free以外的方法都将导致抛出SQLException。如果多次调用free,则后续调用free将被视为无操作。- 抛出:
-
SQLException- 如果释放Blob的资源时发生错误 -
SQLFeatureNotSupportedException- 如果JDBC驱动程序不支持此方法 - 自版本:
- 1.6
-
getBinaryStream
返回一个包含部分Blob值的InputStream对象,从指定的位置pos开始,长度为length字节。- 参数:
-
pos- 要检索的部分值的第一个字节的偏移量。Blob中的第一个字节位于位置1。 -
length- 要检索的部分值的字节数 - 返回:
-
可读取部分
Blob值的InputStream - 抛出:
-
SQLException- 如果pos小于1,或者pos大于Blob中的字节数,或者pos + length大于Blob中的字节数 -
SQLFeatureNotSupportedException- 如果JDBC驱动程序不支持此方法 - 自版本:
- 1.6
-