-
- 所有已知实现类:
-
SerialBlob
public interface Blob
表示(映射)在Java编程语言中的一个SQLBLOB
值。 SQLBLOB
是一种内置类型,它将二进制大对象作为列值存储在数据库表的一行中。 默认情况下,驱动程序使用SQLlocator(BLOB)
实现Blob
,这意味着一个Blob
对象包含一个指向SQLBLOB
数据而不是数据本身的逻辑指针。 ABlob
对象在创建事务的持续时间内有效。方法在接口
ResultSet
,CallableStatement
,并PreparedStatement
,如getBlob
和setBlob
允许编程人员访问SQLBLOB
值。Blob
接口提供了获取SQLBLOB
(二进制大对象)值的长度的方法,用于在客户端上实现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)
检索指定字节数组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
的长度有错误 -
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[])
-
getBinaryStream
InputStream getBinaryStream() throws SQLException
检索由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
有错误或者启动小于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
对象表示,并返回写入的字节数。 写作起始于pos
的BLOB
;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
-
-