给人帮忙,写了一个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字段存储的图片方法详解 #### 一、背景与目的 在实际的应用开发过程中,经常会有将图片等二进制数据存入数据库的需求。Oracle数据库支持通过BLOB(Binary Large Object)类型来存储...
在Java中,读取Oracle数据库中的BLOB字段通常通过`java.sql.Blob`类实现。这个类提供了多种方法来处理BLOB数据,例如`getBytes(long pos, int length)`用于获取BLOB的一部分或全部内容。以下是一个简单的示例: ```...
kettle通过java代码将数据库blob 字段抽取到本地文件
本教程将详细讲解如何批量导出Oracle数据库中的BLOB字段并生成文件,适用于需要定期或一次性处理大量图片或其他BLOB数据的场景。 首先,确保你已经在本地安装了Oracle客户端。Oracle客户端提供了SQL*Plus和其他工具...
该方案使用JSP技术读取ORACLE数据库中的BLOB字段存储的坐标点,然后将坐标传递到JAVA类中显示图形。在图形的正中还显示了编号,充分展示了JSP结合JAVA应用的优势。 知识点1:JSP技术的应用 * JSP(Java Server ...
使用 JAVA 读取 ORACLE BLOB 字段实现上传下载需要完成以下几个步骤:上传大对象、将大对象存储在数据库中、使用专门的函数来完成 BLOB 的使用。在 Struts 项目中,我们可以使用 Struts 的文件上传组件来上传大对象...
以上就是使用C#访问Oracle数据库并处理Blob字段的基本方法。在实际开发中,还需要考虑错误处理、事务管理、连接池等高级概念,以确保代码的健壮性和性能。同时,为了安全起见,建议使用参数化查询来防止SQL注入攻击...
可以从数据库中读取blob字段并插入到另一个表中,已经测试通过
1. **读取坐标点**: 使用JSP读取Oracle数据库中BLOB字段存储的坐标点。 2. **分离坐标**: 对读取到的坐标数据进行处理,分离出每个坐标点。 3. **传递给Java**: 将处理后的坐标数据传递给Java程序进行图形绘制。 4. ...
在Java应用程序中读取Oracle数据库中的BLOB字段通常涉及到几个步骤:建立数据库连接、执行查询语句、获取结果集并从中提取BLOB数据,最后将这些数据写入到文件中。 ##### 3.1 加载Oracle驱动 在Java程序中使用...
本篇文章将详细介绍如何通过SQL查询语句获取存储在Blob字段中的JPEG格式照片的像素大小。 ### 1. 了解Blob数据类型 在Oracle数据库中,Blob(Binary Large Object)类型用于存储大容量的二进制数据,比如图像、音频...
此文档是对于oracle数据库中blob类型字段二进制大对象的读取和解析
综上所述,Java读取`BLOB`类型的大字段是一项技术性较强的工作,需要开发者具备良好的编程习惯和对数据库操作的深入了解。通过上述步骤和注意事项,可以帮助程序员们更加高效、安全地处理大型`BLOB`数据。
1. **数据准备**:确保ORACLE数据库中的BLOB字段包含所需的数据,并且是完整的。可能需要进行数据验证,以确保所有数据都能被正确读取。 2. **数据导出**:使用ORACLE提供的工具,如SQL*Plus或者PL/SQL Developer,...
本篇文章将深入探讨如何在Delphi中对Oracle数据库的BLOB字段进行读写操作。 首先,你需要在Delphi项目中引入Oracle数据库访问的相关组件,如DBExpress或ADO。DBExpress是Delphi内置的一个轻量级数据库访问框架,而...
本文将详细介绍如何使用Struts结合JDBC操作Oracle数据库中的Blob字段实现文件的保存和读取。 #### 代码分析 根据提供的部分代码示例,我们可以将其分为两个主要部分:文件保存和文件读取。 ##### 文件保存 文件...
本文将详细介绍如何在Oracle数据库中实现Blob字段的上传和下载操作。 #### 二、Blob字段上传 Blob字段的上传通常涉及到以下几个步骤: 1. **创建Blob字段:** 首先需要在数据库表中定义一个Blob类型的字段。 2. **...
在Oracle数据库中,Blob字段可以容纳大量非结构化数据,而C#提供了一个名为Oracle.DataAccess.Client的Oracle数据提供者,通过这个提供者,我们可以轻松地在C#应用程序中对Blob字段进行操作。 首先,我们需要在C#...
在Java中,读取Oracle数据库中的CLOB字段可以通过以下步骤实现: 1. **获取CLOB对象**: 首先,通过执行查询语句并从结果集中获取CLOB对象。示例代码中的`lookmail[6]`表示从查询结果的第7个元素(下标为6)获取...
本文将深入探讨如何使用Java Database Connectivity (JDBC) API来操作Oracle数据库中的BLOB字段,包括创建表、插入和读取BLOB数据的方法。 #### 创建包含BLOB字段的表 在Oracle数据库中创建一个包含BLOB字段的表...