JAVA处理Blob大对象 您所在的位置:网站首页 java接收clob到对象 JAVA处理Blob大对象

JAVA处理Blob大对象

2024-07-16 23:54| 来源: 网络整理| 查看: 265

 Blob对象是SQL Blob的Java语言映射。SQL Blob是一个内置类型,它可以将一个二进制大对象保存在数据库中。接口ResultSet、CallableStatement和PreparedStatement中的方法允许程序员使用与访问SQL 92内置类型同样的方式来访问SQL 99类型BLOB。 在标准实现中,JDBC驱动程序在后台使用SQL类型LOCATOR(BLOB)来实现Blob接口。LOCATOR(BLOB)指向保存在数据库服务器上的SQL BLOB值,而且这些操作作用在这个LOCATOR(定位器)上与作用在BLOB值本身有同样的结果。 意味着用户可以在一个Blob实例上执行操作而不必将这个BLOB数据物化到用户上,这将显著的提高性能。因为驱动程序在后台使用LOCATOR(BLOB),所以它的使用对程序员是完全透明的。

 

Blob实例的标准行为一直保持有效,直到这个事务(创建一个Blob的事务)执行了提交或者回滚操作。

1、创建Blob对象下面的代码说明了如何创建一个Blob对象,其中stmt是一个Statement对象:

Statement stmt = con..createStatement(ResultSet.TYPE_INSENSITIVE,              ResultSet.CONCUR_READ_ONLY);ResultSet rs = stmt.excuteQuery(“SELECT DATA  FROM  TABLE 1”);

If (rs.next()){   rs.first();   Blob blob=rs.getBlob(“DATA”);}

变量blob包含一个指向BLOB值的逻辑指针,该BLOB值保存在结果集rs的第一行的DATA列中。即使变量blob实际上并不包含BLOB值中的数值,应用程序在blob上执行操作仍然像在实际的数据上执行一样。即应用程序在blob上所作的任何操作都会对表中的BLOB值起作用。

 

2、物化BLOB数据

  开发人员可以在Blob对象上调用JDBC API中的方法,就像这些方法直接在该对象所指向的SQL BLOB上执行操作一样。然而,如果想在BLOB数据上执行操作,就必须首先将BLOB数据物化到客户。Blob接口提供了两个方法来物化BLOB数据:getBinaryStream,这个方法将BLOB数据物化为一个输入流;getBytes,这个方法将BLOB值得一部分或者全部物化为一个字节数组。下面的代码说明了如何将Blob所指向的BLOB值得全部物化为一个输入流:

    java.io.InputStream in = blob.getBinaryStream();    byte b;    while((b = in.read()) >-1){      System.out.println(b);    }接下来的代码同样物化了blob所指向的BLOB值得所有数据,但是它产生的是字节数组而不是输入流。

    long len = blob.length();    byte [] data = blob.getBytes(1,len);    for(int i=0;i



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有