`
hujianwind
  • 浏览: 10407 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

java 读取 blob

阅读更多
package blobtest;

import javax.swing.*;
import java.io.*;
import java.sql.*;
//import DriverData;

import oracle.jdbc.driver.*;
import oracle.sql.*;
//import oracle.ord.im.*;

// Package for JDBC classes
import java.sql.Connection;
import java.sql.Clob;
import java.sql.ResultSet;
import java.sql.Blob;
import java.sql.Statement;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import oracle.jdbc.pool.OracleDataSource;

public class ReadAudioFromDB {
Connection conn;
Statement stmt;

ResultSet rs;
int bufferSize;

public ReadAudioFromDB()

throws SQLException, ClassNotFoundException {

String connectString;
Class.forName("oracle.jdbc.driver.OracleDriver");
connectString = "jdbc:oracle:oci8:@";
conn = (OracleConnection)
DriverManager.getConnection(connectString, "blobtest",
"1234");

stmt = conn.createStatement();

}

public void readFromDB() {

String pathname, name;
int amount = 0;
InputStream in = null;
BufferedOutputStream out = null;

JFileChooser chooser = new JFileChooser();
int returnVal = chooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
pathname = chooser.getSelectedFile().getAbsolutePath();
name = chooser.getSelectedFile().getName();
chooser = null;
}
else {
System.out.println("没有找到文件!");

System.out.println("程序非正常结束...");
return;
}

try {
rs = stmt.executeQuery(
"select BlobFile from audio where cavern_no='285' and document_id=1");
if (rs.next()) {
Blob blob = rs.getBlob(1);
in = blob.getBinaryStream();
bufferSize = ( (oracle.sql.BLOB) blob).getBufferSize();

out = new BufferedOutputStream(new FileOutputStream(pathname),
(int) bufferSize);

byte[] b = new byte[ (int) bufferSize];
int count = in.read(b, 0, (int) bufferSize);

while (count != -1) {
out.write(b, 0, count);
amount += count;
System.out.println("已经处理了" + amount + "字节.");
count = in.read(b, 0, (int) bufferSize);
}
System.out.println("成功处理完毕字节数:" + amount);
out.close();
out = null;
in.close();
in = null;

}
else {
System.out.println("文档:" + name + "未找到.");
}

}

catch (Exception e) {
e.printStackTrace();
}

finally {
if (out != null) {
try {
out.close();
}
catch (Exception ignored) {}
}
if (in != null) {
try {
in.close();
}
catch (Exception ignored) {}
}
}

}

}

=======
package blobtest;

import javax.swing.*;
import java.io.*;
import java.sql.*;
//import DriverData;

import oracle.jdbc.driver.*;
import oracle.sql.*;
//import oracle.ord.im.*;

// Package for JDBC classes
import java.sql.Connection;
import java.sql.Clob;
import java.sql.ResultSet;
import java.sql.Blob;
import java.sql.Statement;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import oracle.jdbc.pool.OracleDataSource;

public class WriteAudioToDB {
Connection conn;
Statement stmt;

ResultSet rs;
int bufferSize;

public WriteAudioToDB() throws SQLException, ClassNotFoundException {

String connectString;
Class.forName("oracle.jdbc.driver.OracleDriver");
connectString = "jdbc:oracle:oci8:@";
conn = (OracleConnection)
DriverManager.getConnection(connectString, "blobtest",
"1234");

stmt = conn.createStatement();

}

public void sendToDb() {
String pathname, name;
int amount = 0;
OutputStream out = null;
BufferedInputStream in = null;

JFileChooser chooser = new JFileChooser();
int returnVal = chooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
pathname = chooser.getSelectedFile().getAbsolutePath();
name = chooser.getSelectedFile().getName();
chooser = null;
}
else {
System.out.println("没有找到文件!");

System.out.println("程序非正常结束...");
return;
}
try {
conn.setAutoCommit(false);
stmt.executeUpdate("insert into document(cavern_no,audio_id,TITLE ,

ARCHITECTURE_ATTR_VAL ,PAINTED_SCULPTURE_ATTR_VAL,

FRESCO_ATTR_VAL,FOKAN_ATTR_VAL,BLOBFILE )

values("+"'285',2,'"+name+"','1111','111101','10101','10001',empty_blob())");
rs = stmt.executeQuery(
"select BlobFile from document where cavern_no='285' and document_id=1");

if (rs.next()) {
Blob blob = rs.getBlob("BlobFile");
out = ( (oracle.sql.BLOB) blob).getBinaryOutputStream();
bufferSize = ( (oracle.sql.BLOB) blob).getBufferSize();
in = new BufferedInputStream(new FileInputStream(pathname), bufferSize);

byte[] b = new byte[bufferSize];
int count = in.read(b, 0, bufferSize);
while (count != -1) {
out.write(b, 0, count);
amount += count;
System.out.println("处理了" + amount + "字节.");
count = in.read(b, 0, bufferSize);

System.out.println("处理了" + amount + "字节,成功.");

}

out.close();
out = null;
in.close();
in = null;
conn.commit();

}

}

catch (Exception e) {
e.printStackTrace();
try {
conn.rollback();
}
catch (Exception ignored) {}
}
finally {
if (out!=null) try{out.close();} catch(Exception igored){}
if (in!=null) try{in.close();} catch(Exception igored){}
}


}

}
转自 http://junsheng.itpub.net/post/860/8559 csdn
分享到:
评论

相关推荐

    java读取大字段blob类型

    ### Java读取大字段BLOB类型的详细解析 在数据库中,`BLOB`(Binary Large Object)类型通常用于存储大量的二进制数据,如图像、音频文件或文档等。而在Java开发过程中,处理这些大数据量的`BLOB`字段是一项挑战性...

    java中Blob转String

    分享在JAVA中Blob转换成String实例

    java对blob的存取.pdf

    Java 对 Blob 的存取 在 Java 中对 Blob(Binary Large OBject)的存取是非常重要的,Blob 是一种二进制大对象,它...Java 对 Blob 的存取是非常重要的,它可以帮助我们实现图片、音频、视频等大型文件的存储和读取。

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

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

    java sqlite blob 读写

    java sqlite bolb 将图片存入sqlite blob 字段中,然后读取sqlite

    java,Blob字段操作,将图片或者文件保存到数据库中.zip

    在Java中,Blob对象通常由`java.sql.Blob`接口表示,该接口提供了读写Blob数据的方法。 2. **准备工作** 在进行Blob操作前,我们需要准备以下内容: - 数据库连接:使用JDBC(Java Database Connectivity)API...

    java file upload BLOB

    使用 Java 进行文件上传至数据库 BLOB 字段 #### 知识点说明: 在Java Web开发中,经常需要处理用户上传的文件,比如图片、文档等。这些文件通常比较大,如果直接将文件的内容作为字符串保存在数据库中,可能会...

    Java-图片BLOB的存取DEMO

    2、com.ub:实现简单的插入及读取操作,读取后的BLOB可以生成新图片,并使用JFrame方式展现。 3、com.cc: 由于需要将两个不同库(测试代码是同一个库的两个表 IMAGETAB和 IMAGETAB3)的的照片进行更新,表里面存...

    oracle_java_blob

    本篇将详细介绍如何使用Java将MP3等二进制文件存入Oracle数据库中的BLOB字段。 首先,我们需要了解Oracle JDBC驱动,这是Java与Oracle数据库交互的基础。Oracle提供了一个名为ojdbc的JDBC驱动,它可以连接到Oracle...

    java中sqllite数据库blob数据类型的存取.docx

    以下是一个完整的Java程序示例,用于向SQLite数据库中插入一个文件(作为BLOB类型),然后从中读取并恢复该文件。 ```java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream...

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

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

    java实现 BLOB图片大文件在oracle中的存储和查找

    本教程将详细讲解如何使用Java来实现BLOB(Binary Large Object)类型的大文件,如图片,在Oracle数据库中的存储和查找,这对于初学者理解和掌握JDBC技术极具价值。 首先,我们需要理解BLOB类型。BLOB是Oracle...

    JAVA中SQLlite数据库BLOB数据类型的存取.docx

    JAVA 中 SQLlite 数据库 BLOB 数据类型的存取是指在 JAVA 语言中使用 SQLlite 数据库来存储和读取大型二进制对象(BLOB),以便实现文件存储和读取的功能。本文将详细介绍如何使用 JAVA 语言来实现 SQLlite 数据库...

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

    使用 JAVA 读取 ORACLE BLOB 字段实现上传下载 BLOB(Binary Large Objects)是一种二进制大对象类型,常用于存储大对象,例如图形、声音等。我们可以将 BLOB 区分为三种形式:声像数据、二进制数据和大文本数据。...

    Java从数据库中读取Blob对象图片并显示的方法

    这里我们主要探讨两种Java从数据库中读取Blob对象图片并显示的方法。 **方法一** 这个方法涉及从数据库获取Blob对象的输入流,并将其直接写入HTTP响应的输出流,以便浏览器可以解析并显示图片。以下是实现步骤: ...

    java 存数据库 blob文件的示例

    在Java编程中,Blob(Binary Large Object)是用于存储大对象数据类型的一种方式,常见于关系型数据库中,如SQL Server。Blob类型适用于存储图片、音频、视频等非结构化数据。本示例将详细解释如何使用Java向SQL ...

    使用hibernate对oracle读取blob

    在Java开发中,Blob(Binary Large Object)类型用于存储大对象,如图片、音频或视频文件等。Oracle数据库是广泛使用的数据库系统,它支持Blob类型的字段。Hibernate作为一款流行的ORM(对象关系映射)框架,提供了...

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

    Java对Oracle数据库中BLOB字段的处理涉及多个层面,包括读取、写入、更新以及跨数据库操作等。 ### Java处理Oracle BLOB字段的基本方法 #### 1. 读取BLOB字段 在Java中,读取Oracle数据库中的BLOB字段通常通过`...

    oracle中读取blob字段.doc

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

Global site tag (gtag.js) - Google Analytics