`

如何将二进制文件存入Oracle数据库中

阅读更多
把二进制文件存入数据库

1。把二进制文件存放到字节数组中。
2。将字节数组转化为blob字段,存入Oracle数据库中。

1.   public void test055() throws IOException {  
File inFile = new File("d:\\Chrysanthemum.jpg");  
FileInputStream fileInputStream = new FileInputStream(inFile);  
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();  
int i;  
//转化为字节数组流  
while ((i = fileInputStream.read()) != -1) {  
     byteArrayOutputStream.write(i);  
  }  
  fileInputStream.close();  
  // 把文件存在一个字节数组中  
  byte[] filea = byteArrayOutputStream.toByteArray();  

  byteArrayOutputStream.close();  
  String encoding = "ISO-8859-1";  
  String fileaString = new String(filea, encoding);  
  System.out.println(fileaString);  
  // 写入文件  
  FileOutputStream fileOutputStream = new FileOutputStream("d:/b.png");  
  fileOutputStream.write(fileaString.getBytes(encoding));  
  fileOutputStream.flush();  
  fileOutputStream.close();
    } 
   
2. MakeCardInfo cardInfo=new MakeCardInfo();
  cardInfo.setCardNo("6214539500037565");
  cardInfo.setCardIndex("00");
  cardInfo.setCardDataType("2");
  cardInfo.setBatchNo("27");
  cardInfo.setChannelNo("02");
  cardInfo.setStatus("01");
  cardInfo.setDgiFileName("dgi");
  cardInfo.setCardData(filea);
  cardInfo.setTranDate("20140417");
  cardInfo.setDownloadCount("0");
  MakeCardInfoDaoImpl dao=new MakeCardInfoDaoImpl(SaveDpInfoStep.getConn());
  dao.insertMakeCardInfo1(cardInfo, filea.length);
 
  insertMakeCardInfo1方法代码如下:
public int insertMakeCardInfo1(MakeCardInfo info,int position) throws Exception{
 
  PreparedStatement ps = null;
InputStream in = null;
try {
ps = connection.prepareStatement(_INSERT);
ps.setString(1, info.getCardNo());
ps.setString(2, info.getCardIndex());
in = new ByteArrayInputStream(info.getCardData()) ;
ps.setBinaryStream(3, in, position);   //position 就是字节数组的长度
ps.setString(4,info.getDownloadCount());
ps.setString(5, info.getCardDataType());
ps.setString(6, info.getStatus());
ps.setString(7, info.getChannelNo());
ps.setString(8, info.getTranDate());
ps.setString(9, info.getBatchNo());
ps.setString(10, info.getDgiFileName());
return ps.executeUpdate();
} catch (Exception e) {
throw e;
}finally{
if(in!=null){
in.close();
}
if(ps!=null)
ps.close();
if(connection!=null)
connection.close();
}
}
 
   
   
     注意:

(1)使用ByteArrayOutputStream 来把二进制流转化为字节数组流;

(2)把字节数组转化为String类型时,一定要使用ISO-8859-1编码;

String encoding = "ISO-8859-1";

String fileaString = new String(filea, encoding);

(3)通过字符串获取字节数组时,一定要使用ISO-8859-1编码:

fileOutputStream.write(fileaString.getBytes(encoding));
分享到:
评论

相关推荐

    Oracle,SQL2000,MYSQL存取图片或二进制数据的功能文件

    `MySQLUploader.java`文件可能包含处理MySQL数据库中图片或二进制数据的Java代码,使用JDBC连接,加载MySQL驱动,通过PreparedStatement执行SQL语句将二进制数据存入数据库。读取时,可以使用ResultSet的...

    图片以二进制存取数据库

    在关系型数据库如MySQL、PostgreSQL、Oracle和SQL Server中,BLOB是一个特殊的数据类型,用于存储大量的二进制数据,例如图片、音频或视频文件。在SQL Server中,这种类型被称为`VARBINARY(MAX)`,它允许存储最多2^...

    怎样用VBA将EXCEL中的图片存入Oracle数据库(利用临时文件方式)

    标题“怎样用VBA将EXCEL中的图片存入Oracle数据库(利用临时文件方式)”涉及到的知识点主要包括: 1. **VBA(Visual Basic for Applications)编程**:VBA是Microsoft Office套件中的一种内置编程语言,允许用户...

    图片存入Oracle中,用clob和blob两种方式

    用户可以通过这个工具方便地将图片存入Oracle数据库,也可以读取已存储的图片。 6. **优缺点**: - **CLOB**:优点是跨平台兼容性好,因为Base64编码是标准的文本格式;缺点是占用的空间比原始二进制数据大,且...

    图片存入数据库 图片 数据库

    在Oracle数据库中,可以使用SQL语句创建一个名为`test_img`的表,包含三个字段:`id`用于唯一标识图片,`name`存储图片名称,`pic`则用来存储图片的二进制数据。创建表的SQL语句如下: ```sql CREATE TABLE test_...

    利用Java程序实现Oracle数据库中大对象的存取.pdf

    程序执行功能的简单说明:在客户端的浏览器界面上输入一个客户端的文件名(本文以pdf类型文件为例),将该文件的全部内容做为一个大对象的数据存储在服务器端的Oracle数据库中。任何一个客户端都可以通过浏览器再次...

    将数组存入数据库

    本主题将深入探讨如何利用ADO(ActiveX Data Objects)技术将数组转换为二进制数据并存入数据库中。 首先,ADO是微软开发的一种数据访问接口,它提供了一种标准的方式来访问各种数据源,如SQL Server、Access或...

    将图片存入数据库,并从数据库中读取

    当我们谈论“将图片存入数据库,并从数据库中读取”时,我们实际上是在讨论一种数据存储策略,这种策略允许我们将图像文件作为二进制数据存储在数据库中,并能够按需检索出来。这种做法有其优点,例如方便数据集成和...

    数据库读取二进制图片显示

    这篇文章将深入探讨如何在数据库中处理二进制图片,并提供一种显示它们的方法,供学习者参考。 首先,我们要理解图片本质上是二进制数据,通常以.jpg、.png或.gif等格式存在。这些文件由一系列0和1组成,代表图像的...

    通过二进制数据流的方式,读写图片,把图片存入数据库

    7. 显示图片:将从数据库中读取的二进制数据转换回图片格式,可以通过创建一个新的图片对象,将字节数组传递给构造函数,如C#中的`Image.FromStream()`或Java的`ImageIO.read(new ByteArrayInputStream(bytes))`。...

    UPDATE 把文件保存到数据库中

    在使用PowerBuilder (PB) 9.0进行应用程序开发时,有时我们需要将文件保存到数据库中,以便于数据管理和检索。这个过程涉及到文件操作、数据库交互以及数据存储格式的转换。下面将详细介绍如何在PB9.0中实现“把文件...

    浅论大型数据对象在Oracle数据库中的存储方法.pdf

    本文主要探讨的是如何在Oracle数据库中有效地存储多媒体数据、文档和其他大文件,这些数据通常包含大量的字节,如视频、图片、音频和文档等。 在Oracle数据库中,大型数据对象(Large Data Object, LDO)是指那些...

    将bmp类型图片存入数据库

    本主题将详细探讨如何将BMP(Bitmap)类型的图片存入数据库,并能从数据库中导出到MFC控件上显示。我们将涵盖以下几个关键知识点: 1. BMP文件格式:BMP是Windows操作系统中的一种位图文件格式,它包含未经压缩的...

    c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库

    本文将详细讲解如何操作Oracle数据库中的Blob字段,以实现图片的存储和读取。Blob(Binary Large Object)字段类型用于存储大量的二进制数据,如图片、文档等。 首先,确保已安装了Oracle的客户端库,如ODP.NET ...

    图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片)

    本示例主要涉及的是如何将图片通过BASE64编码加密后存入数据库的Blob类型字段,并能从数据库中取出这些数据再还原成原始图片。以下是相关知识点的详细说明: 1. **BASE64编码**:BASE64是一种用于将二进制数据转换...

    oracle_java_blob

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

    基于ASP.NET和Oracle数据库的图片上传和查看.pdf

    - `UpPhoto.aspx`: 用户在此页面选择图片文件并执行上传操作,图片数据会被存入Oracle数据库中的`CONTSCAN`表。 - `ShowPhoto.aspx`: 此页面根据合同编号等分类条件,分页从数据库中读取图片并展示在ImageButton...

    Oracle数据库逻辑备份的实现

    逻辑备份创建数据库对象的逻辑拷贝并存入一个二进制转储文件。这种逻辑备份需要在数据库启动的情况下使用, 其导出实质就是读取一个数据库记录集(甚至可以包括数据字典)并将这个记录集写入一个文件,这些记录的导出...

    oracle触发器实现二维码

    在Oracle数据库中,创建一个触发器需要编写PL/SQL代码,定义在特定操作(例如INSERT)后执行的逻辑。 以下是一个简单的例子,展示了如何创建一个触发器来处理二维码的生成和存储: ```sql CREATE OR REPLACE ...

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

    BLOB是Oracle数据库中用于存储二进制大数据的一种数据类型,非常适合存储图像、音频或视频等非结构化数据。在Java中,我们通常使用`PreparedStatement`和`ResultSet`接口来操作BLOB字段。 Java与Oracle的连接主要...

Global site tag (gtag.js) - Google Analytics