`

java读oralce中的JPG

    博客分类:
  • java
阅读更多
package hz;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
*
* @author gongchengwei
*
* @功能
* writeimage(String id,String imagepath,String imagename)
* 从数据里去读取数据..到数据保存到文件夹中
* @参数
* 1.String id 要查录的ID
* 2.String imagepath 保存到哪里的路径.(里有一张默认图片.如果没有图片会把那一张图片用文件流写一份)
* 3.String imagename 保存的文件名.
*
* @流程
* (创建数据连接)
* 1.根据传入的路径文件名去判断文件是否存在,
*   存在.直接跳出.
* 2.通过传入的参数去查找记录.
* 3.如果记录存在.把数据库里的数据写到文件夹
* 4.不存在的话..把那一张默认文件用文件流写一张图片
*
*
*/
public class WriteImageToFile {

  private static final String URL = "jdbc:oracle:thin:@192.168.1.240:1521:persondb";
  private static final String name="personal";
  private static final String password="1234";
  private static final String driver="oracle.jdbc.driver.OracleDriver";
 
public void writeimage(String id,String imagepath,String imagename){
  /*java.util.Date  d1=new  java.util.Date(); 
  java.text.SimpleDateFormat  dformat=new  java.text.SimpleDateFormat("yyyy-MM-dd  HH:mm:ss"); 
  String  dateandtime=dformat.format(d1); 
  System.out.println("nonce time1 ="+dateandtime);
  */
   //DataBase
   Connection con = null;
   Statement stmt = null;
   ResultSet rs = null;
  
   String sql="SELECT T_IMAGE FROM T_IMAGE_LOB where T_ID = '"+id+"'";
   System.out.println(sql);
   String filepath=imagepath+imagename;  //"F:/pp/"+"1.jpg"
  
   System.out.println("filepath = "+filepath);
  
   File f=new File(filepath);
   if(f.exists()){//判断文件是否存在..如果存在直接退出
    System.out.println("文件已存在");
   }else{
    try{
    
    Class.forName(driver).newInstance();
    con = DriverManager.getConnection(URL,name,password);
    if(con!=null){
     con.setAutoCommit(true);
    }
    stmt = con.createStatement();
       rs = stmt.executeQuery(sql);

    if (rs.next()){
     Blob b = rs.getBlob("T_IMAGE");
     InputStream in=b.getBinaryStream();  // 建立输出流
     //FileInputStream in =(FileInputStream)b.getBinaryStream();
     FileOutputStream file=new FileOutputStream(filepath);
     int len=(int)b.length();
     byte[] buffer=new byte[len];  // 建立缓冲区
     System.out.println("file size ="+len);
     while((len=in.read(buffer)) != -1){
      file.write(buffer,0,len);
     }
      file.close();     
      in.close();
      con.commit();
     
    }else{
     FileInputStream infile=new FileInputStream(imagepath+"/defaultimg.jpg");
     FileOutputStream file=new FileOutputStream(filepath);
     int len=4086;
     byte[] buff = new byte[4086];
     while((len=infile.read(buff)) != -1){
      file.write(buff,0,len);
     }
      file.close();     
      infile.close();
      con.commit();
    }
   }catch(Exception e){
    //
    //System.out.println("12:"+e.getMessage());
    try {
           if(con!=null){
             con.rollback();
             con.setAutoCommit(true);
           }
       }catch (SQLException ex2){
           //throw new DatabaseException(" rollback error.", ex2);
    }
    //throw new DatabaseException("Unable to commit con, database has been rollbacked.", ex);
   }finally{
    try{
     rs.close();
     stmt.close();
     if (con != null) {
            try {
              con.close();
              con = null;
             
         }catch (SQLException ex3) {
               //throw new DatabaseException("Error occured in close con.", ex3);
            }
     }
    }catch (Exception e) {
           // throw new DatabaseException("Error occured in close con.", ex3);
          }
   }
  }
   /*
   java.util.Date  d2=new  java.util.Date(); 
   java.text.SimpleDateFormat  dformat2=new  java.text.SimpleDateFormat("yyyy-MM-dd  HH:mm:ss"); 
   String  dateandtime2=dformat.format(d2); 
   System.out.println("nonce time2 ="+dateandtime2);
   */
  }

public void delstarorg(String imagepath,String imagename){//删除过期文件
 
// System.out.println("del file = "+imagepath+imagename);
  File file =new File(imagepath+imagename);
  if(file.exists()){
   file.delete();
  }
 
}
//测试
public static void main(String args[]){
  System.out.println("start");
  WriteImageToFile witf=new WriteImageToFile();
  witf.writeimage("测试六 ,429004195508052666.jpg","F:/","cbc.jpg");
  System.out.println("end");
}


}


分享到:
评论

相关推荐

    java互转jpg和raw格式图片

    本篇文章将详细探讨如何利用Java与JAI-ImageIO库进行JPEG(jpg)与RAW格式图片之间的转换。 首先,让我们了解这两种图像格式。JPEG(Joint Photographic Experts Group)是一种广泛使用的有损压缩图像格式,适用于...

    java程序将tif文件转为jpg所需jar包

    JAI是Oracle提供的一个扩展Java 2D API的库,它提供了多种高级图像处理功能,包括读取、写入和操作各种图像格式,如TIFF。这个库使得开发者可以方便地处理复杂的图像操作,如颜色空间转换、几何变换等。 2. `jai-...

    JAVA操作Oracle blob类型

    在Java编程中,Oracle数据库中的BLOB(Binary Large Object)类型用于存储大量的二进制数据,如图片、视频或文档。这篇博客文章“JAVA操作Oracle blob类型”将深入探讨如何在Java应用程序中有效地管理和操作Oracle...

    Java存取OracleBlob字段,图片存储,Blob和BLOB的问题,Clob,oracle.docx

    在处理 Oracle 数据库中的二进制大型对象(Binary Large Object,简称 Blob)时,开发者经常会遇到两个相似但不同的概念:`java.sql.Blob` 和 `oracle.sql.BLOB`。 1. **`java.sql.Blob`**: - 这是一个 Java 接口...

    oracle中读取blob字段.doc

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

    Oracle导出图片源代码

    "Oracle导出图片源代码"是针对这个需求编写的一段程序,它可以有效地从Oracle数据库中导出存储在BLOB字段中的图片。 首先,我们要理解Oracle数据库中如何存储和访问图片。BLOB字段用于存储大量的二进制数据,包括...

    我们公司的内部oracle开发课件(我的珍藏)

    Oracle数据库在Java开发中也有广泛应用,通过JDBC(Java Database Connectivity)接口,Java程序可以与Oracle数据库进行交互。学习如何使用Java连接Oracle数据库、执行SQL语句、处理结果集,以及处理数据库异常,都...

    java将图片写入数据库,并读出来(blob clob)

    在Java编程中,有时我们需要将图像数据存储到数据库中,然后能够从数据库中读取出来。这个过程通常涉及到Blob和Clob数据类型,它们是Java中的两种特殊对象,用于存储大对象(LOB)。Blob用于存储二进制数据,如图片...

    课程设计java+Oracle数据库实现微信小程序健身预约系统源码.zip

    该课程设计项目主要基于Java技术和Oracle数据库,旨在实现一个微信小程序健身预约系统。这个系统能够为用户提供方便快捷的健身预约服务,用户可以在微信小程序中查看健身房的设施、教练信息,并进行预约操作。以下是...

    JDBC操纵Oracle数据库中的BLOB字段

    本文将深入探讨如何使用Java Database Connectivity (JDBC) API来操作Oracle数据库中的BLOB字段,包括创建表、插入和读取BLOB数据的方法。 #### 创建包含BLOB字段的表 在Oracle数据库中创建一个包含BLOB字段的表...

    使用JDBC4.0操作Oracle中BLOB类型的数据方法

    在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...

    多页tif生成多个单页jpg图片

    Java Advanced Imaging (JAI) 是Oracle提供的一套用于处理图像的高级API,它提供了丰富的图像操作功能,包括读取、写入、转换和处理多种图像格式。在这个场景中,我们需要用到`jai_core-1.1.3.jar`和`jai-codec-...

    java在上传视频中截取一张视频内的截图

    你可以从Oracle官网下载并安装JMF,然后将其jar文件添加到项目的类路径中。 2. **创建MediaLocator对象**: 这个对象用于指定视频文件的位置。例如,如果视频文件在本地,你可以通过"file://path/to/your/video.mp4...

    java 饮食文化的资源

    11. **Java.jpg**:这个文件可能是Java语言相关的图形或logo,可能用于教学、展示或作为项目标识。 总的来说,"Java饮食文化"是对Java编程实践中的一种形象化的表述,涵盖了从语言特性和社区规范到开发工具和生态...

    mysql oracle 插入blob数据实例源码

    本篇文章将深入探讨如何在MySQL和Oracle数据库中插入Blob数据,并提供相关的源码实例。 一、MySQL中的Blob数据插入 MySQL提供了多种方式插入Blob数据,包括使用PreparedStatement接口。以下是一个Java源码示例: ...

    java用hibernate连接数据库提取中文

    在本项目中,“java用hibernate连接数据库提取中文”是利用Hibernate框架在Eclipse集成开发环境中与Oracle数据库进行交互,以读取和处理中文数据的小程序。下面我们将详细讨论相关的知识点。 首先,我们需要了解...

    ssh+oracle整合

    在提供的压缩包中,"jar.jpg"可能是关于某些库或组件的截图,"readme.txt"可能包含安装或配置的指南,"src"目录包含了源代码,而"web"目录则可能包含了Web应用程序的静态资源和部署配置。 总的来说,SSH+Oracle整合...

    OracleBlobToJPG

    要将Blob中的JPG导出,首先需要在Java代码中加载Oracle JDBC驱动,然后创建一个数据库连接。这可以通过以下代码实现: ```java Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = ...

    Oracle11g安装

    在《Oracle数据类型.jpg》中,可能展示了Oracle数据库中的各种数据类型,包括: 1. **数值类型**:NUMBER、INTEGER、BINARY_INTEGER、PLS_INTEGER等,用于存储整数和浮点数。 2. **字符类型**:VARCHAR2、CHAR、LONG...

    Oracle照片的读取写入

    本文将深入探讨如何在Oracle数据库中进行照片的读取与写入。 首先,我们需要了解如何将本地照片存入Oracle数据库。这通常涉及到BLOB(Binary Large Object)数据类型,它是Oracle用于存储大块二进制数据的字段类型...

Global site tag (gtag.js) - Google Analytics