-
- 所有已知实现类:
-
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 方法 描述 voidfree()该方法可以释放Blob对象并释放它所拥有的资源。InputStreamgetBinaryStream()检索由该Blob实例指定的BLOB值作为流。InputStreamgetBinaryStream(long pos, long length)返回一个包含部分Blob值的InputStream对象,从pos指定的字节开始,长度为字节长度。byte[]getBytes(long pos, int length)检索Blob对象所代表的BLOB全部或部分值,作为字节数组。longlength()返回此Blob对象指定的BLOB值中的字节数。longposition(byte[] pattern, long start)检索指定字节数组pattern在Blob对象表示的BLOB值内开始的字节位置。longposition(Blob pattern, long start)检索在该字节位置BLOB通过该指定值Blob对象在该pattern开始。OutputStreamsetBinaryStream(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字节长度。
-
-
-
方法详细信息
-
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
-
-