-
- 所有已知实现类:
-
SerialBlob
public interface Blob
SQLBLOB
值的BLOB
“¢编程语言中的表示(映射)。 SQLBLOB
是一种内置类型,它将二进制大对象存储为数据库表的一行中的列值。 默认情况下,驱动程序使用SQLlocator(BLOB)
实现Blob
,这意味着Blob
对象包含指向SQLBLOB
数据的逻辑指针,而不是数据本身。Blob
对象在创建事务的持续时间内有效。方法在接口
ResultSet
,CallableStatement
,并PreparedStatement
,如getBlob
和setBlob
允许编程人员访问SQLBLOB
值。Blob
接口提供了获取SQLBLOB
(二进制大对象)值的长度的方法,用于在客户端上实现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[])
-
getBinaryStream
InputStream getBinaryStream() throws SQLException
以流的BLOB
检索此Blob
实例指定的BLOB
值。- 结果
- 包含
BLOB
数据的流 - 异常
-
SQLException
- 如果访问BLOB
值时出错 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.2
- 另请参见:
-
setBinaryStream(long)
-
position
long position(byte[] pattern, long start) throws SQLException
检索指定的字节数组pattern
在Blob
对象表示的BLOB
值内开始的字节位置。 搜索pattern
为start
。- 参数
-
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
值,并返回写入的字节数。 写作开始于位置pos
在BLOB
值;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
-
-