public interface Blob
BLOB
值。
SQL BLOB
是一种内置类型,它将二进制大对象作为列值存储在数据库表的一行中。
默认情况下,驱动程序使用SQL Blob
来实现locator(BLOB)
,这意味着Blob
对象包含一个指向SQL BLOB
数据的逻辑指针,而不是数据本身。
Blob
对象在创建的事务的持续时间内有效。
方法在接口ResultSet
, CallableStatement
和PreparedStatement
,如getBlob
和setBlob
允许编程人员访问SQL BLOB
值。 Blob
接口提供了获取SQL BLOB
(二进制大对象)值的长度的方法,用于在客户端上实现BLOB
值,并确定BLOB
值中字节模式的位置。 此外,该接口还具有更新BLOB
值的方法。
所有的方法Blob
接口必须如果JDBC驱动程序支持的数据类型得到充分执行。
Modifier and Type | Method and Description |
---|---|
void |
free()
该方法释放了
Blob 对象并释放了它所拥有的资源。
|
InputStream |
getBinaryStream()
将此
Blob 实例指定的
BLOB 值作为流
Blob 。
|
InputStream |
getBinaryStream(long pos, long length)
返回包含部分
Blob 值的
InputStream 对象,从pos指定的字节开始,长度为长度字节。
|
byte[] |
getBytes(long pos, int length)
检索此
Blob 对象所
BLOB BLOB的全部或部分值,作为字节数组。
|
long |
length()
返回此
Blob 对象指定的
BLOB 值中的字节数。
|
long |
position(Blob pattern, long start)
检索在该字节位置
BLOB 通过该指定值
Blob 对象在该
pattern 开始。
|
long |
position(byte[] pattern, long start)
检索指定字节数组
pattern 在该
Blob 对象表示的
BLOB 值内开始的字节位置。
|
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 对象表示的长度为
len 个字节的
BLOB 值。
|
long length() throws SQLException
Blob
对象指定的
BLOB
值中的字节数。
BLOB
的字节长度
SQLException
- 如果存在访问长度的错误
BLOB
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法
byte[] getBytes(long pos, int length) throws SQLException
Blob
对象所BLOB
BLOB的全部或部分值,作为字节数组。
此byte
阵列包含多到length
开始位置连续字节pos
。
pos
- 要提取的BLOB
值中第一个字节的顺序位置;
第一个字节在位置1
length
- 要复制的连续字节数;
长度的值必须为0或更大
Blob
对象指定的
BLOB
值中最多
length
length个连续字节的字节数组,从位置
pos
处的字节开始
SQLException
- 访问BLOB
值时是否有错误;
如果pos小于1或长度小于0
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法
setBytes(long, byte[])
InputStream getBinaryStream() throws SQLException
Blob
实例指定的
BLOB
值作为流
Blob
。
BLOB
数据的流
SQLException
- 如果存在访问
BLOB
值的错误
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法
setBinaryStream(long)
long position(byte[] pattern, long start) throws SQLException
Blob
对象表示的BLOB
值内检索指定字节数组pattern
开始的字节位置。
对于搜索pattern
的位置开始start
。
pattern
- 要搜索的字节数组
start
- 开始搜索的位置;
第一名是1
SQLException
- 如果存在访问BLOB的
BLOB
或者如果启动小于1
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法
long position(Blob pattern, long start) throws SQLException
BLOB
通过该指定值Blob
对象在该pattern
开始。
搜索从位置start
开始。
pattern
-
Blob
对象,指定要搜索的
BLOB
值
start
- 在开始搜索的BLOB
值的位置;
第一名是1
SQLException
- 如果存在访问
BLOB
值的错误,或者如果启动小于1
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法
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驱动程序不支持此方法
getBytes(long, int)
int setBytes(long pos, byte[] bytes, int offset, int len) throws SQLException
byte
数组的全部或部分写入Blob
对象表示的BLOB
值,并返回写入的字节数。
pos
写作开始于BLOB
;
来自给定字节数组的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驱动程序不支持此方法
getBytes(long, int)
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驱动程序不支持此方法
getBinaryStream()
void truncate(long len) throws SQLException
Blob
对象表示的长度为len
个字节的BLOB
值。
注意:如果为pos
指定的值大于BLOB
值的长度+ 1,那么行为是未定义的。 某些JDBC驱动程序可能会抛出SQLException
,而其他驱动程序可能会支持此操作。
len
- 这个
Blob
对象所代表的
BLOB
值的长度(以字节为单位)应该被截断
SQLException
- 如果在
BLOB
值时出现错误,或者如果len小于0
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法
void free() throws SQLException
Blob
对象并释放其拥有的资源。
调用free
方法后,该对象无效。
在free
之后,任何尝试调用free
的方法将导致抛出SQLException
。 如果free
被多次调用,在后续调用free
被视为无操作。
SQLException
- 如果发布错误发生Blob的资源
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法
InputStream getBinaryStream(long pos, long length) throws SQLException
Blob
值的
InputStream
对象,从pos指定的字节开始,长度为长度字节。
pos
- 要检索的部分值的第一个字节的偏移量。
Blob
中的第一个字节在位置1
length
- 要检索的部分值的字节长度
InputStream
可以读取部分
Blob
值。
SQLException
- 如果pos小于1,或者如果pos大于
Blob
中的字节数,或者如果pos + length大于
Blob
中的字节数
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.