`
lgcpeter
  • 浏览: 90155 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JDBC实现oracle blob 出库入库

阅读更多
1,首先建一个足够简单的表imageTable
      id         varchar(20)
      image   blob
2,blob入库
      拷贝Sunset.jpg图片在C盘根目录下     
 1      DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
 2      Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:beyondduke","duke","duke"); 
 3      conn.setAutoCommit(false); 
 4      BLOB blob = null
 5      PreparedStatement pstmt = conn.prepareStatement("insert into imageTable(id,image) values(?,empty_blob())"); 
 6      pstmt.setString(1,"10001"); 
 7      pstmt.executeUpdate(); 
 8      pstmt.close(); 
 9      pstmt = conn.prepareStatement("select content from imageTable where id= ? for update"); 
10      pstmt.setString(1,"10001"); 
11      ResultSet rs = pstmt.executeQuery(); 
12     if (rs.next()) blob = (BLOB) rs.getBlob(1); 
13      String fileName = "c://Sunset.jpg"
14      File f = new File(fileName); 
15      FileInputStream fin = new FileInputStream(f); 
16      System.out.println("file size = " + fin.available()); 
17      pstmt = conn.prepareStatement("update imageTable set image=? where id=?"); 
18      OutputStream out = blob.getBinaryOutputStream(); 
19       byte[] data = new byte[(int)fin.available()]; 
20      fin.read(data); 
21      out.write(data); 
22      out.close(); 
23      fin.close(); 
24
25      pstmt.setBlob(1,blob); 
26      pstmt.setString(2,"fankai"); 
27
28      pstmt.executeUpdate(); 
29      pstmt.close(); 
30
31      conn.commit(); 
32      conn.close(); 
浏览数据库的数据,发现image项中数据大小与图片大小一致,说明入库了!
 3,blob出库
 1   DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
 2   Connection conn = DriverManager.getConnection(            "jdbc:oracle:thin:@localhost:1521:beyondduke""duke","duke");     
          conn.setAutoCommit(
false);
 3    Statement stmt = conn.createStatement();
 4/**//* 查询BLOB对象 */
 5    ResultSet rs = stmt.executeQuery("SELECT content FROM javatest WHERE id='1001'");
 6while (rs.next()) {
 7/**//* 取出此BLOB对象 */    
 8    oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("image");
 9 BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("d://Sunset.jpg"));            
           BufferedInputStream in 
= new BufferedInputStream(blob    .getBinaryStream());        
10    int c;
11while ((c = in.read()) != -1{ out.write(c);        
12   }

13   in.close();
14   out.close();
15   rs.close();
16   stmt.close();
17   conn.close();
18
检查D盘根目录,会发现Sunset.jpg文件,跟C盘下是一样的,说明入库出库成功!

beyondduke 2006-02-14 09:23 发表评论






分享到:
评论

相关推荐

    jdbc 操作oracle blob数据

    jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc ...

    使用JDBC4.0操作Oracle中BLOB类型的数据方法

    在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...

    oracle blob转文件读取

    ### Oracle Blob类型转换为文件读取的相关知识点 ...通过以上内容,我们可以了解到如何在C#中实现Oracle数据库中Blob类型的读取和保存操作。这对于处理数据库中的多媒体文件等二进制数据非常有用。

    JDBC+Hibernate将Blob数据写入Oracle

    在Oracle数据库中,BLOB类型的字段具有特殊的处理方式,尤其在使用JDBC(Java Database Connectivity)和Hibernate框架时,需要特别注意其写入过程。以下是对“JDBC+Hibernate将Blob数据写入Oracle”这一主题的深入...

    JDBC操纵Oracle数据库中的BLOB字段

    总结而言,使用JDBC操纵Oracle数据库中的BLOB字段,无论是通过现代的`setBinaryStream`方法还是古老的分步写入策略,都能有效实现对多媒体数据的高效管理。开发者应根据具体的应用需求和环境选择最合适的操作方式。

    blob 文件入库例子

    本示例主要涉及Java编程语言,通过源代码实现Blob文件入库的功能。 `FetchDir.java`可能是一个用于读取本地文件目录,获取待上传至数据库的Blob文件的工具类。此类通常会包含方法,如`listFiles()`,遍历指定目录下...

    oracle blob图片导出工具

    批量导出oracle bolb图片到本地文件

    oracle中的BLOB(照片)转换到mysql中

    Oracle数据库系统支持多种复杂的数据类型,其中包括BLOB(Binary Large Object),用于存储非结构化的大数据,如图片、音频或视频文件。而MySQL同样提供了BLOB类型,用于相似的用途。本篇将详细讲解如何在Oracle与...

    oracle Blob转换Clob

    ### Oracle Blob转换Clob ...通过以上内容的学习,可以了解到如何在Oracle数据库中实现Blob到Clob的转换过程,以及相关的注意事项和技术细节。这对于处理大数据量下的不同类型数据转换具有重要意义。

    Oracle blob字段上传下载

    本文将详细介绍如何在Oracle数据库中实现Blob字段的上传和下载操作。 #### 二、Blob字段上传 Blob字段的上传通常涉及到以下几个步骤: 1. **创建Blob字段:** 首先需要在数据库表中定义一个Blob类型的字段。 2. **...

    oracle blob 字段 读写 delphi

    Oracle数据库中的BLOB(Binary Large Object)字段是用来存储大量二进制数据的,例如图片、文档或音频文件。在Delphi编程环境中,处理这类数据时需要掌握特定的API调用和方法。本篇文章将深入探讨如何在Delphi中对...

    【Oracle BLOB】存储的图片批量导出到文件夹

    使用PL/SQL脚本将Oracle的Blob字段中存储的图片批量导出到文件夹,可在文件夹中直接查看。

    文件上传至oracle blob字段的java实现

    指定文件夹下的所有文件上传至oracle的blob字段,java实现

    java对oracle数据库中blob字段的处理

    在Java中,读取Oracle数据库中的BLOB字段通常通过`java.sql.Blob`类实现。这个类提供了多种方法来处理BLOB数据,例如`getBytes(long pos, int length)`用于获取BLOB的一部分或全部内容。以下是一个简单的示例: ```...

    oracle查询blob字段照片(jpeg) 像素大小sql

    在Oracle数据库中,Blob是一种用来存储二进制数据的数据类型,比如图像、音频或视频文件等。本篇文章将详细介绍如何通过SQL查询语句获取存储在Blob字段中的JPEG格式照片的像素大小。 ### 1. 了解Blob数据类型 在...

    jdbc读写Oracle的CLOB字段

    JDBC读写Oracle的CLOB字段

    ORACLE中BLOB字段导入到SQL SERVER中的IMAGE字段

    使用这些资源,用户可以按照上述步骤操作,实现ORACLE到SQL SERVER的数据迁移。注意,实际操作时应根据具体环境和需求调整步骤,可能还需要考虑数据权限、性能优化等因素。 总的来说,跨数据库系统的数据迁移是一个...

    批量导出ORACLE数据库BLOB字段生成图片

    Oracle数据库在存储大对象(BLOB)数据时,提供了高效且灵活的方式,使得二进制数据如图片、文档等能够安全地保存在数据库中。批量导出Oracle数据库中的BLOB字段生成图片,是一项常见的需求,尤其对于那些需要将...

    oracle(blob转换为clob)

    在Oracle数据库环境中,数据类型BLOB(Binary Large Object)用于存储大量的二进制数据,如图像、音频或视频文件,而CLOB(Character Large Object)则用于存储大量文本数据。在某些情况下,可能需要将BLOB类型的...

Global site tag (gtag.js) - Google Analytics