- 所有已知的实现类:
-
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 TypeMethodDescriptionvoid
free()
该方法释放Blob
对象并释放其持有的资源。检索由此Blob
实例指定的BLOB
值作为流。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) 检索此Blob
对象表示的BLOB
值中指定字节数组pattern
开始的字节位置。long
检索由此Blob
对象指定的BLOB
值中pattern
开始的字节位置。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
字节。
-
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
-