package db;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.PrintStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
private Connection conn;
/**
* 得到一个数据库的连接
*
* @return 返加Connection对象
*/
public Connection getConnection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@IP地址:1521:实例", "用户名", "密码");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 向表中插入二进制数据
* @param path数据所在的路径
* @return 成功或失败
*/
public int insertImage(String path) throws Exception {
int i = 0;
Statement st = null;
ResultSet rs = null;
conn=this.getConnection();
conn.setAutoCommit(false);//设置数据库为不自动提交,必须
st = conn.createStatement();
//先插入一个空对象,这里插入Empty_BLOB()函数 stuid text
i = st.executeUpdate("insert into testbo(stuid,text) values(1,Empty_BLOB())");
//进行行级锁
rs = st.executeQuery("select text from testbo where stuid=1 for update");
if (rs.next()) {
//得到流
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(1);
//从得到的低级流构造一个高级流
PrintStream ps = new PrintStream(blob.getBinaryOutputStream());
BufferedInputStream bis = new BufferedInputStream(
new FileInputStream(path));
byte[] buff = new byte[512];
int n = 0;
//从输入到输出
while ((n = bis.read(buff)) != -1) {
ps.write(buff, 0, n);
}
//清空流的缓存
ps.flush();
//关闭流,注意一定要关
ps.close();
bis.close();
}
rs.close();
st.close();
conn.close();
return i;
}
public static void main(String[] args) throws Exception {
Test test=new Test();
test.insertImage("C:/MyDocuments/kettledemo/ANKG.SN.2008309124211.00.BHZ");
System.out.println("YES");
}
}
分享到:
相关推荐
### Oracle Blob类型转换为文件读取的相关知识点 在软件开发过程中,尤其是在处理数据库中的二进制大对象(Binary Large Object, 简称BLOB)时,经常需要将数据库中的BLOB数据转换为文件进行读取或处理。本文将详细...
然后,通过类似的方法,读取本地文件并将其内容插入到MySQL的BLOB字段中。在Java中,你可以使用`PreparedStatement`的`setBinaryStream()`方法: ```java FileInputStream in = new FileInputStream(...
Oracle数据库中的BLOB(Binary Large Object)字段是用来存储大量二进制数据的,例如图片、文档或音频文件。在Delphi编程环境中,处理这类数据时需要掌握特定的API调用和方法。本篇文章将深入探讨如何在Delphi中对...
在Oracle数据库中,BLOB(Binary Large Object)字段是用来存储大量二进制数据的类型,如图片、视频或任何非文本文件。与之相对的是CLOB(Character Large Object),用于存储大量的文本数据。在Java应用中,特别是...
### Oracle Blob字段上传与下载详解 #### 一、概述 在数据库系统中,二进制大对象(Binary Large Object,简称BLOB)是一种用于存储大量二进制数据的数据类型,例如图像、音频或视频文件等。Oracle数据库支持Blob...
Oracle中的Blob类型是一种用于存储大型二进制对象的数据类型,如图像、音频或视频文件等。Blob相比于long字段,提供了更好的性能,特别是处理大量非结构化数据时。Blob的使用涉及多个步骤,包括创建、插入、读取和...
Python如何操作Oracle的Blob字段,
本篇文章将深入探讨如何使用C#语言访问Oracle数据库,并重点讲解处理Blob(Binary Large Object)字段的读写操作。 首先,让我们理解C#访问Oracle数据库的基本原理。Oracle数据库提供了一个名为ODP.NET(Oracle ...
本篇文章将深入探讨如何在MySQL和Oracle数据库中插入Blob数据,并提供相关的源码实例。 一、MySQL中的Blob数据插入 MySQL提供了多种方式插入Blob数据,包括使用PreparedStatement接口。以下是一个Java源码示例: ...
为了解决这个问题,可以采用一种间接的方法:首先在本地数据库创建一个临时表,并将BLOB数据插入到该临时表中;然后,通过DBLink从远程数据库选择并操作这些数据。这种方法避免了直接通过DBLink处理大对象数据的问题...
在Oracle数据库系统中,BLOB(Binary Large Object)是一种数据类型,用于存储大量的二进制数据,如图像、音频文件或任何非结构化的文本数据。本教程将详细讲解如何使用C++与Oracle数据库进行交互,特别是针对BLOB...
### Java中读取Oracle数据库BLOB字段存储的图片方法详解 #### 一、背景与目的 在实际的应用开发过程中,经常会有将图片等二进制数据存入数据库的需求。Oracle数据库支持通过BLOB(Binary Large Object)类型来存储...
本话题主要探讨了如何使用C#语言来实现Oracle数据库中的Blob类型字段进行文档的上传与下载操作。以下是对这一主题的详细解释。 首先,Oracle数据库中的Blob(Binary Large Object)类型用于存储大量的二进制数据,...
在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...
在数据库管理中,存储非结构化数据...综上所述,`CLOB`和`BLOB`都是在Oracle中存储图片的有效方法,具体选择哪种方式取决于应用场景和需求。`ClobAndBlob`工具提供了一种便捷的方式来体验和比较这两种方式的使用效果。
代码首先通过`empty_blob()`函数插入一个空的BLOB,接着使用`FOR UPDATE`子句查询这个BLOB,从而获取到其游标。随后,通过读取本地文件(本例中是"oraclejdbc.jar")的数据,将其写入到BLOB中。这里值得注意的是,...
在Java编程中,Oracle数据库中的BLOB(Binary Large Object)类型用于存储大量的二进制数据,如图片、视频或文档。这篇博客文章“JAVA操作Oracle blob类型”将深入探讨如何在Java应用程序中有效地管理和操作Oracle...
### Oracle中BLOB字段的读取与操作 #### 一、引言 在数据库系统中,BLOB(Binary Large Object)是一种用于存储大量二进制数据的数据类型,例如图像、音频或视频文件等。在Oracle数据库中,BLOB类型特别适用于处理...
Oracle数据库系统支持两种类型的大对象(LOB)数据:BLOB(Binary Large Object)和CLOB(Character Large Object)。这两种类型都是用于存储大量数据,BLOB用于二进制数据,如图片、音频或视频文件,而CLOB则用于...
c#-操作数据库oracle的小代码,提供用于学习。代码主要实现从oracle读取、保存、上传图片等功能,使用了Oracle.DataAccess.dll,想了解相关知识的欢迎下载,有问题的请给我留言,谢谢。