package com.able.demo; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.SQLException; import com.able.dao.JdbcOracleUtil; /* * 建数据表 create table ZIPDATA ( DATATYPE VARCHAR2(20), DATACONTENT BLOB ) */ /** * * @author 刘勋 */ public class TestZip { Connection conn = null; public TestZip(){ JdbcOracleUtil util = JdbcOracleUtil.getInstance(); conn=util.getConnection(); } /** * 写入 * @param file * @throws SQLException * @throws IOException */ public void write(String file) throws SQLException, IOException{ java.sql.Statement stmt = null; java.sql.Statement stmt2 = null; java.sql.ResultSet rs = null; conn.setAutoCommit(false); String sql = "insert into ZIPDATA(DATATYPE,DATACONTENT) values('1',empty_blob())"; stmt = conn.createStatement(); stmt.executeUpdate(sql); String sql2 = "select DATACONTENT from ZIPDATA where DATATYPE = '1' for update"; stmt2 = conn.createStatement(); rs = stmt2.executeQuery(sql2); if(rs.next()){ oracle.sql.BLOB b = (oracle.sql.BLOB)rs.getBlob(1); java.io.OutputStream os = b.getBinaryOutputStream(); java.io.InputStream is = new java.io.FileInputStream(file); int i = 0; while((i = is.read()) != -1){ os.write(i); } if(is!=null){ is.close(); } if(os!=null){ os.close(); } conn.commit(); System.out.println("写数据成功!"); } } /** * 读取 * @param file * @throws SQLException * @throws IOException */ private void read(String file) throws SQLException, IOException { java.sql.Statement stmt = null; java.sql.ResultSet rs = null; String sql = "select * from mms_send_content where id=22321"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if(rs.next()){ oracle.sql.BLOB b = (oracle.sql.BLOB)rs.getBlob(5); java.io.InputStream is = b.getBinaryStream(); java.io.FileOutputStream fos = new java.io.FileOutputStream(file); int i = 0; while((i = is.read())!= -1){ fos.write(i); } if(fos!=null){ fos.close(); } if(is!=null){ is.close(); } } System.out.println("读取数据成功!"); } /** * 修改 * @param file */ private void update(String file) { java.sql.Statement stmt = null; java.sql.ResultSet rs = null; OutputStream os=null; InputStream is=null; try { conn.setAutoCommit(false); stmt=conn.createStatement(); rs=stmt.executeQuery("select DATACONTENT from ZIPDATA where DATATYPE = '1' for update"); if(rs.next()){ oracle.sql.BLOB b = (oracle.sql.BLOB)rs.getBlob(1); os = b.getBinaryOutputStream(); is = new java.io.FileInputStream(file); int i = 0; while((i = is.read()) != -1){ os.write(i); } System.out.println("写数据成功!"); } conn.commit(); } catch (SQLException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { if(is!=null){ is.close(); } if(os!=null){ os.close(); } }catch (IOException e) { e.printStackTrace(); } } } public static void main(String args[]) throws SQLException, IOException{ TestZip er=new TestZip(); // er.write("D:\\1.zip");//读取文件系统,写blob er.read("D:\\2.zip");//读取blob,写文件系统 // er.update("D:\\wulihai\\写给亲爱的猪.doc");//读取文件系统,更新blob } }
相关推荐
指定文件夹下的所有文件上传至oracle的blob字段,java实现
本篇将详细介绍如何使用Java将MP3等二进制文件存入Oracle数据库中的BLOB字段。 首先,我们需要了解Oracle JDBC驱动,这是Java与Oracle数据库交互的基础。Oracle提供了一个名为ojdbc的JDBC驱动,它可以连接到Oracle...
Java对Oracle数据库中BLOB字段的处理涉及多个层面,包括读取、写入、更新以及跨数据库操作等。 ### Java处理Oracle BLOB字段的基本方法 #### 1. 读取BLOB字段 在Java中,读取Oracle数据库中的BLOB字段通常通过`...
### Java中读取Oracle数据库BLOB字段存储的图片方法详解 #### 一、背景与目的 在实际的应用开发过程中,经常会有将图片等二进制数据存入数据库的需求。Oracle数据库支持通过BLOB(Binary Large Object)类型来存储...
本教程将深入探讨如何使用Java进行Blob字段的操作,以实现将图片或文件保存到数据库中。 1. **Blob字段的理解** Blob是SQL标准定义的一种数据类型,它能够存储大量的二进制数据,如图像、音频文件、PDF文档等。在...
本教程将详细讲解如何批量导出Oracle数据库中的BLOB字段并生成文件,适用于需要定期或一次性处理大量图片或其他BLOB数据的场景。 首先,确保你已经在本地安装了Oracle客户端。Oracle客户端提供了SQL*Plus和其他工具...
总的来说,"java实现BLOB图片大文件在Oracle中的存储和查找"是一个很好的实践项目,它涵盖了Java编程、数据库操作和MVC设计模式等多个重要知识点。通过这个项目,你可以深入理解JDBC的使用,提升数据库操作技能,并...
这篇博客文章“JAVA操作Oracle blob类型”将深入探讨如何在Java应用程序中有效地管理和操作Oracle数据库中的BLOB字段。本文将详细讲解相关知识点,包括连接数据库、插入BLOB数据、查询BLOB数据以及更新和删除BLOB...
使用 JAVA 读取 ORACLE BLOB 字段实现上传下载 BLOB(Binary Large Objects)是一种二进制大对象类型,常用于存储大对象,例如图形、声音等。我们可以将 BLOB 区分为三种形式:声像数据、二进制数据和大文本数据。...
2. **Oracle.ManagedDataAccess.dll**:这是Oracle官方提供的Managed Driver,它是一个.NET Framework库,允许开发者在.NET环境中直接访问Oracle数据库,支持Clob和Blob操作。 3. **SqlSugar.dll**:这是一个流行的...
使用 Java 进行文件上传至数据库 BLOB 字段 #### 知识点说明: 在Java Web开发中,经常需要处理用户上传的文件,比如图片、文档等。这些文件通常比较大,如果直接将文件的内容作为字符串保存在数据库中,可能会...
批量导出Oracle数据库中的BLOB字段生成图片,是一项常见的需求,尤其对于那些需要将数据库中的图片资源导出到本地文件系统的情况。下面将详细介绍这一过程及其相关知识点。 首先,我们需要理解BLOB类型。BLOB...
Oracle数据库系统支持多种复杂的数据类型,其中包括BLOB(Binary Large Object),用于存储非结构化的大数据,如图片、音频或视频文件。而MySQL同样提供了BLOB类型,用于相似的用途。本篇将详细讲解如何在Oracle与...
本文将详细介绍如何在Oracle数据库中实现Blob字段的上传和下载操作。 #### 二、Blob字段上传 Blob字段的上传通常涉及到以下几个步骤: 1. **创建Blob字段:** 首先需要在数据库表中定义一个Blob类型的字段。 2. **...
kettle通过java代码将数据库blob 字段抽取到本地文件
在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...
在使用 Java 进行 Oracle 数据库操作时,理解 Blob 和 Clob 类型及其操作方法至关重要。通过合理选择 JDBC 版本和适配容器特性,可以有效地管理大容量数据,提高应用程序的性能和稳定性。此外,还需要关注不同容器...
为了能够通过Spring框架操作数据库中的BLOB数据,需要对`sqlMapConfig.xml`进行适当的配置。以下是一个配置示例: ```xml <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" ...
Oracle提供了高效的流式读写接口,如`OracleBlob`的`getBinaryStream`和`setBinaryStream`方法,可以按需读取或写入数据,减少内存消耗。 另外,为了提高性能和降低网络传输成本,我们还可以考虑使用Oracle的LOB...