ResultSet CallableStatement PreparedStatement 等接口都定义了getBlob()方法getClob()
方法setBlob()方法setClob()方法用以获取或者设定BLOB CLOB 类型的数据具体
方法的定义请读者参考相应的文档这里就不再介绍了
Blob 接口的方法
在Blob 接口中定义了下面的方法
public long length(); 该方法可以获取Blob 数据的长度
public byte[] getBytes(long pos int length); 该方法可以从Blob 数据中获取其中的
某一段将其赋给一个byte 数组参数pos 是开始截取数据的位置参数length 是截取数
据的长度
public InputStream getBinaryStream(); 该方法从Blob 数据中获取一个输入流
(InputStream)
public long position(byte[] pattern long start); 该方法获取特定字节在Blob 数据中
的位置参数pattern 是查找的目标字节参数start 指的是开始查找的位置
public long position(Blob pattern long start); 该方法可以获取特定Blob 类型的数
据在当前Blob 数据中的开始位置参数pattern 代表需要查找的Blob 数据参数start 代表
开始查找匹配的位置
下面的两个JSP 代码段演示了如何获取Blob 类型的数据并将其输出(数据库连接代
码段已经省略了其中rs 是ResultSet 接口的实例对象)

<%
rs.absolute(4);
Blob blob=rs.getBlob( image );
java.io.InputStream in = blob.getBinaryStream();
byte b;
while ((in.read()) > -1)
{
b = in.read();
out.println(b);
}
%>

<%
rs.absolute(4);
Blob blob=rs.getBlob( image );
long len = blob.length();
byte [] data = blob.getBytes(1 len);
for (int i = 0; i < len; i++)
{
byte b = data[i];
out.println(b);
}
%>