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盘下是一样的,说明入库出库成功!
分享到:
相关推荐
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 ...
在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...
### Oracle Blob类型转换为文件读取的相关知识点 ...通过以上内容,我们可以了解到如何在C#中实现Oracle数据库中Blob类型的读取和保存操作。这对于处理数据库中的多媒体文件等二进制数据非常有用。
在Oracle数据库中,BLOB类型的字段具有特殊的处理方式,尤其在使用JDBC(Java Database Connectivity)和Hibernate框架时,需要特别注意其写入过程。以下是对“JDBC+Hibernate将Blob数据写入Oracle”这一主题的深入...
总结而言,使用JDBC操纵Oracle数据库中的BLOB字段,无论是通过现代的`setBinaryStream`方法还是古老的分步写入策略,都能有效实现对多媒体数据的高效管理。开发者应根据具体的应用需求和环境选择最合适的操作方式。
本示例主要涉及Java编程语言,通过源代码实现Blob文件入库的功能。 `FetchDir.java`可能是一个用于读取本地文件目录,获取待上传至数据库的Blob文件的工具类。此类通常会包含方法,如`listFiles()`,遍历指定目录下...
批量导出oracle bolb图片到本地文件
Oracle数据库系统支持多种复杂的数据类型,其中包括BLOB(Binary Large Object),用于存储非结构化的大数据,如图片、音频或视频文件。而MySQL同样提供了BLOB类型,用于相似的用途。本篇将详细讲解如何在Oracle与...
### Oracle Blob转换Clob ...通过以上内容的学习,可以了解到如何在Oracle数据库中实现Blob到Clob的转换过程,以及相关的注意事项和技术细节。这对于处理大数据量下的不同类型数据转换具有重要意义。
本文将详细介绍如何在Oracle数据库中实现Blob字段的上传和下载操作。 #### 二、Blob字段上传 Blob字段的上传通常涉及到以下几个步骤: 1. **创建Blob字段:** 首先需要在数据库表中定义一个Blob类型的字段。 2. **...
Oracle数据库中的BLOB(Binary Large Object)字段是用来存储大量二进制数据的,例如图片、文档或音频文件。在Delphi编程环境中,处理这类数据时需要掌握特定的API调用和方法。本篇文章将深入探讨如何在Delphi中对...
使用PL/SQL脚本将Oracle的Blob字段中存储的图片批量导出到文件夹,可在文件夹中直接查看。
指定文件夹下的所有文件上传至oracle的blob字段,java实现
在Java中,读取Oracle数据库中的BLOB字段通常通过`java.sql.Blob`类实现。这个类提供了多种方法来处理BLOB数据,例如`getBytes(long pos, int length)`用于获取BLOB的一部分或全部内容。以下是一个简单的示例: ```...
在Oracle数据库中,Blob是一种用来存储二进制数据的数据类型,比如图像、音频或视频文件等。本篇文章将详细介绍如何通过SQL查询语句获取存储在Blob字段中的JPEG格式照片的像素大小。 ### 1. 了解Blob数据类型 在...
JDBC读写Oracle的CLOB字段
使用这些资源,用户可以按照上述步骤操作,实现ORACLE到SQL SERVER的数据迁移。注意,实际操作时应根据具体环境和需求调整步骤,可能还需要考虑数据权限、性能优化等因素。 总的来说,跨数据库系统的数据迁移是一个...
Oracle数据库在存储大对象(BLOB)数据时,提供了高效且灵活的方式,使得二进制数据如图片、文档等能够安全地保存在数据库中。批量导出Oracle数据库中的BLOB字段生成图片,是一项常见的需求,尤其对于那些需要将...
在Oracle数据库环境中,数据类型BLOB(Binary Large Object)用于存储大量的二进制数据,如图像、音频或视频文件,而CLOB(Character Large Object)则用于存储大量文本数据。在某些情况下,可能需要将BLOB类型的...