DB2中对BLOB对象的写入和读取--JAVA语言实现
作者:魏华超 weihuachao@sina.com
package
net.qysoft;
import
java.io.File;
import java.io.FileOutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.SQLException;
/**
* java
中对Blob数据的操作数据库的创建代码:
* (1)db2 => create table blobTest ( id
int not null generated always as identity, image
blob )
*添加用户java,密码java
* (2)
db2=>! net
* user java java /add java分配权限
*(3)db2 => grant
select,insert,update,delete on
* table weihuachao.blobTest to user java
*
*
* @author weihuachao
* 以下代码在microsoft 2003
系统,DB2 9.0中测试成功.
*
*/
//类的定义开始------------------------------------------------------------
public class Test {
public static void
main(String[] args) throws Exception {
Test
test = new Test();
Connection conn =
test.createConnection();
//
Blob对象的插入的方法:
try {
//
创建插入语句.
java.sql.PreparedStatement
preparedStatement = conn
.prepareStatement("insert
into weihuachao.blobTest(image)values(?)");
//创建文件对象:
File file=new
File("c:/a.jpg");
//
创建流对象:
java.io.BufferedInputStream
imageInput = new java.io.BufferedInputStream(
new
java.io.FileInputStream(file));
//参数赋值:
preparedStatement.setBinaryStream(1,
imageInput,(int) file.length());
//执行语句
preparedStatement.executeUpdate();
//------------------------------------------------------------------
//Blob的读取工作:
java.sql.Statement
st=conn.createStatement();
java.sql.ResultSet
rs=st.executeQuery("select image from
weihuachao.blobTest");
while(rs.next())
{
//读取Blob对象
Blob
blob= (Blob) rs.getBlob(1);
//Blob对象转化为InputStream流
java.io.InputStream
inputStream =blob.getBinaryStream();
//要写入的文件
File
fileOutput = new File("c:/backa.jpg");
//文件的写入流的定义
FileOutputStream
fo = new FileOutputStream(fileOutput);
int
c;
//读取流并写入到文件中
while
((c = inputStream.read()) != -1)
fo.write(c);
//流的关闭:
fo.close();
}
}
catch (SQLException e) {
//
TODO 自动生成 catch 块
e.printStackTrace();
}catch(java.io.FileNotFoundException
ex)
{
ex.printStackTrace();
}catch(java.io.IOException
ex)
{
ex.printStackTrace();
}
finally
{
try {
conn.close();
} catch
(SQLException e) {
//
TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
/**
* 定义数据库连接的方法
*
* @return
*/
private Connection createConnection() {
Connection conn = null;
try {
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
conn
= java.sql.DriverManager.getConnection("jdbc:db2:sample",
"java",
"java");
} catch
(SQLException ex1) {
ex1.printStackTrace();
} catch
(ClassNotFoundException ex) {
ex.printStackTrace();
}
return conn;
}
}//结束.
总结: JAVA
对DB2中的BLOB对象的操作,主要是使用流的技术实现.对BLOB的实现主要步骤有:
(1)定义要写入的文件 File
file=new File("c:/a.jpg");
(2)定义文件的写入流
java.io.BufferedInputStream imageInput = new
java.io.BufferedInputStream(
new
java.io.FileInputStream(file));
(3)使用函数写入:
preparedStatement.setBinaryStream(1,
imageInput,(int) file.length());
(4)执行SQL语句:
对BLOB的读取采取的步骤有:
(1)读取Blob的对象: Blob
blob= (Blob) rs.getBlob(1);
(2)把Blob的对象转化为流:
java.io.InputStream inputStream =blob.getBinaryStream();
(3)定义要写入的文件
File
fileOutput = new File("c:/backa.jpg");
(4)文件的写入流的定义
FileOutputStream
fo = new FileOutputStream(fileOutput);
(5)写入文件(流的写入技术,就不多讲了)
int
c;
while
((c = inputStream.read()) != -1)
{
fo.write(c);
}
//END
相关推荐
java读取大字段,介绍java如何读取大字段blob,解决程序员头疼问题
对非DB2数据库的数据复制, 不直接支持LOB(BLOB,ClOB)等大对象数据类型,但在实际应用中,用户需要复制的表中有可能有BLOB等大对象数据,如果数据目标为Oracle,这类大对象复制的需求可通过对WII的复制进行特殊配置实现...
JAVA 中 SQLlite 数据库 BLOB 数据类型的存取是指在 JAVA 语言中使用 SQLlite 数据库来存储和读取大型二进制对象(BLOB),以便实现文件存储和读取的功能。本文将详细介绍如何使用 JAVA 语言来实现 SQLlite 数据库...
C# 中的 BLOB 读取操作 C# 中的 BLOB(Binary Large OBject)读取操作是指从数据库中读取二进制数据的过程。BLOB 是一种二进制数据...通过使用 FileStream 对象和相关的方法,我们可以轻松地读取和写入 BLOB 数据。
本文实例讲述了javascript使用Blob对象实现的下载文件操作。分享给大家供大家参考,具体如下: Blob对象 前言 环境 操作 总结 Blob是一个类文件的不可变的原始数据对象,非javascript原生数据类型,File对象...
使用PLSQL从数据库中读取BLOB对象
主要介绍了Java从数据库中读取Blob对象图片并显示的方法,实例分析了Java读取数据库中Blob对象图片的技巧与操作方法,需要的朋友可以参考下
可以从数据库中读取blob字段并插入到另一个表中,已经测试通过
在本文中,JDBC用于连接Oracle数据库和实现对Blob类型数据的动态访问。 4.PB对Oracle中的Blob类型数据的动态访问 PB(PowerBuilder)是一种流行的集成开发环境,用于开发基于数据库的应用程序。在本文中,PB用于...
Java 对 Blob 的存取 在 Java 中对 Blob(Binary Large OBject)的存取是非常重要的,Blob 是一种二进制大对象,它...Java 对 Blob 的存取是非常重要的,它可以帮助我们实现图片、音频、视频等大型文件的存储和读取。
java中读取ORACLE中BLOB字段存储的图片
Delphi 如何将二维数组数据 以Blob 存入数据库中 并读取 。先将二维数组转换维流文件,以内存流 Blob 形式存入到数据库中。 读取时以流获取 然后读出到数组中
商业编程-源码-《使用ADO实现BLOB数据的存取 -- ADO开发实践之二》配套源代码.zip
java sqlite bolb 将图片存入sqlite blob 字段中,然后读取sqlite
资源分类:Python库 所属语言:Python 资源全名:blobfile-0.16.7-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
java中sqllite数据库blob数据类型的存取.docx
分享在JAVA中Blob转换成String实例
20180828开发,提供了三种通过JDBC实现图片存储到BLOB的方式: 1、com.ztf:实现小页面,实现 指定保存的图片+打开指定编号图片 2、com.ub:实现简单的插入及读取操作,读取后的BLOB可以生成新图片,并使用JFrame...
经典的上载图片,存到BLOB对象里面,附带读取图片
VS、VC++实现对象序列化保存到sqlite表blob类型字段中,包含blob字段的读取和保存,文档中有代码及说明实例。