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

JAVA读取Oracle数据库BLOB字段

阅读更多


给人帮忙,写了一个JAVA读取Oracle数据库BLOB字段的示例代码。

仅作备忘。


示例说明:

1. 使用Oracle的JDBC驱动。

2. BLOB字段中存储的是一个文件,把BLOB字段中存储的内容保存到磁盘中形成文件。


程序代码片断如下:

---------------------
package DBtest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Blob;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class getDataFrmDB {
public getDataFrmDB() {
}

public static void main(String args[]) {
getDataFrmDB test = new getDataFrmDB();

if (test.getDate()) {
System.out.print("操作成功!");
}
else {
System.out.print("操作异常!");
}
}

public boolean getDate() {
Connection conn = null;
Statement sql = null;
ResultSet rs = null;
try {
try {
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//String sourceURL = "jdbc:odbc:ORDB";
Class.forName("oracle.jdbc.driver.OracleDriver");
String sourceURL = "jdbc:oracle:thin:@127.0.0.1:1521:ORDB";
String user = "thamsdt";
String password = "thamsdt";

conn = DriverManager.getConnection(sourceURL, user, password);

sql = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);

//注:“ini”字段为BLOB字段
String sqlstr = "Select username,ini from S_USER where usercode='ROOT'";

rs = sql.executeQuery(sqlstr);

while (rs.next()) {
String name = rs.getString("username");

//如下使用JdbcOdbcDriver则报错:Hit uncaught exception java.lang.UnsupportedOperationException
//java.sql.Blob blob = rs.getBlob("ini");

//注意这里的写法:使用的是OracleDriver
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("ini");

String filepath = "C:/" + name + ".ini";
System.out.println("输出文件路径为:" + filepath);
try {
InputStream in = blob.getBinaryStream(); // 建立输出流
FileOutputStream file = new FileOutputStream(filepath);
int len = (int) blob.length();
byte[] buffer = new byte[len]; // 建立缓冲区
while ( (len = in.read(buffer)) != -1) {
file.write(buffer, 0, len);
}
file.close();
in.close();
}
catch (Exception e) {
System.out.println("I/O Exception.");
return false;
}
}
}
finally {
rs.close();
sql.close();
conn.close();
}
}
catch (SQLException e) {
System.out.println("SQLException.");
return false;
}
catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException.");
return false;
}
return true;
}
}

---------------------


By JRQ

2008/04/15 · 京

分享到:
评论

相关推荐

    java中读取ORACLE中BLOB字段存储的图片

    ### Java中读取Oracle数据库BLOB字段存储的图片方法详解 #### 一、背景与目的 在实际的应用开发过程中,经常会有将图片等二进制数据存入数据库的需求。Oracle数据库支持通过BLOB(Binary Large Object)类型来存储...

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

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

    kettle通过java代码将数据库blob 字段抽取到本地文件

    kettle通过java代码将数据库blob 字段抽取到本地文件

    批量导出ORACLE数据库BLOB字段生成文件

    本教程将详细讲解如何批量导出Oracle数据库中的BLOB字段并生成文件,适用于需要定期或一次性处理大量图片或其他BLOB数据的场景。 首先,确保你已经在本地安装了Oracle客户端。Oracle客户端提供了SQL*Plus和其他工具...

    基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案.pdf

    该方案使用JSP技术读取ORACLE数据库中的BLOB字段存储的坐标点,然后将坐标传递到JAVA类中显示图形。在图形的正中还显示了编号,充分展示了JSP结合JAVA应用的优势。 知识点1:JSP技术的应用 * JSP(Java Server ...

    使用JAVA读取ORACLE_BLOB字段实现上传下载.doc

    使用 JAVA 读取 ORACLE BLOB 字段实现上传下载需要完成以下几个步骤:上传大对象、将大对象存储在数据库中、使用专门的函数来完成 BLOB 的使用。在 Struts 项目中,我们可以使用 Struts 的文件上传组件来上传大对象...

    C#访问oracle数据库类,带blob字段读写

    以上就是使用C#访问Oracle数据库并处理Blob字段的基本方法。在实际开发中,还需要考虑错误处理、事务管理、连接池等高级概念,以确保代码的健壮性和性能。同时,为了安全起见,建议使用参数化查询来防止SQL注入攻击...

    Java读取数据库中blob字段并插入到另一个表中

    可以从数据库中读取blob字段并插入到另一个表中,已经测试通过

    基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案

    1. **读取坐标点**: 使用JSP读取Oracle数据库中BLOB字段存储的坐标点。 2. **分离坐标**: 对读取到的坐标数据进行处理,分离出每个坐标点。 3. **传递给Java**: 将处理后的坐标数据传递给Java程序进行图形绘制。 4. ...

    oracle中读取blob字段.doc

    在Java应用程序中读取Oracle数据库中的BLOB字段通常涉及到几个步骤:建立数据库连接、执行查询语句、获取结果集并从中提取BLOB数据,最后将这些数据写入到文件中。 ##### 3.1 加载Oracle驱动 在Java程序中使用...

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

    本篇文章将详细介绍如何通过SQL查询语句获取存储在Blob字段中的JPEG格式照片的像素大小。 ### 1. 了解Blob数据类型 在Oracle数据库中,Blob(Binary Large Object)类型用于存储大容量的二进制数据,比如图像、音频...

    Oracle中Blob字段的写入处理

    此文档是对于oracle数据库中blob类型字段二进制大对象的读取和解析

    java读取大字段blob类型

    综上所述,Java读取`BLOB`类型的大字段是一项技术性较强的工作,需要开发者具备良好的编程习惯和对数据库操作的深入了解。通过上述步骤和注意事项,可以帮助程序员们更加高效、安全地处理大型`BLOB`数据。

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

    1. **数据准备**:确保ORACLE数据库中的BLOB字段包含所需的数据,并且是完整的。可能需要进行数据验证,以确保所有数据都能被正确读取。 2. **数据导出**:使用ORACLE提供的工具,如SQL*Plus或者PL/SQL Developer,...

    oracle blob 字段 读写 delphi

    本篇文章将深入探讨如何在Delphi中对Oracle数据库的BLOB字段进行读写操作。 首先,你需要在Delphi项目中引入Oracle数据库访问的相关组件,如DBExpress或ADO。DBExpress是Delphi内置的一个轻量级数据库访问框架,而...

    Struts用JDBC的Blob字段保存和读取Oracle数据库

    本文将详细介绍如何使用Struts结合JDBC操作Oracle数据库中的Blob字段实现文件的保存和读取。 #### 代码分析 根据提供的部分代码示例,我们可以将其分为两个主要部分:文件保存和文件读取。 ##### 文件保存 文件...

    Oracle blob字段上传下载

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

    c#操作oracle数据库Blob源码

    在Oracle数据库中,Blob字段可以容纳大量非结构化数据,而C#提供了一个名为Oracle.DataAccess.Client的Oracle数据提供者,通过这个提供者,我们可以轻松地在C#应用程序中对Blob字段进行操作。 首先,我们需要在C#...

    读取oracle数据库中clob字段的值

    在Java中,读取Oracle数据库中的CLOB字段可以通过以下步骤实现: 1. **获取CLOB对象**: 首先,通过执行查询语句并从结果集中获取CLOB对象。示例代码中的`lookmail[6]`表示从查询结果的第7个元素(下标为6)获取...

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

    本文将深入探讨如何使用Java Database Connectivity (JDBC) API来操作Oracle数据库中的BLOB字段,包括创建表、插入和读取BLOB数据的方法。 #### 创建包含BLOB字段的表 在Oracle数据库中创建一个包含BLOB字段的表...

Global site tag (gtag.js) - Google Analytics