亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java讀寫oracle的blob字段示例

2019-11-26 15:39:52
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

package com.wanmei.meishu;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import oracle.sql.BLOB;

public class BlobUtil {

 private static BlobUtil bu;
 private String env;
 public static BlobUtil getInstance(String env) {
  bu = new BlobUtil();
  bu.env = env;
  return bu;
 }

 /**
  * <p>得到數據庫鏈接</p>
  * @return
  * @throws Exception
  */
 private Connection getConnection() throws Exception {
  String driver = "oracle.jdbc.driver.OracleDriver";
  Class.forName(driver);
  String env = this.env;
  Properties pro = new Properties();
  // 讀取classes 目錄下的配置文件  
  pro.load(new FileReader(Class.class.getResource("/config.properties").getFile()));
  String host = pro.getProperty(env + ".host");
  String database = pro.getProperty(env + ".database");
  String username = pro.getProperty(env + ".username");
  String password = pro.getProperty(env + ".password");
  String port = pro.getProperty(env + ".port");
  String url = "jdbc:oracle:thin:@" + host + ":" + port +":" + database;
  return DriverManager.getConnection(url, username, password);
 }

 /**
  * <p>傳入項目,任務,附件名稱,文件路徑,寫入數據庫</p>
  * @param projectId
  * @param taskId
  * @param fileName
  * @param file
  * @return 返回是否成功
  */
 public boolean write(String projectId, String taskId, String fileName, String file) {
  Connection conn = null;
  ResultSet rs = null;
  PreparedStatement ps = null;
  BLOB blob = null;
  boolean flag = false;
  try {
   conn = getConnection();
   conn.setAutoCommit(false);

   String sql = "INSERT INTO PS_ZP_PRJ_WBS_BLOB BLB(ZP_PRJ_ID, ZZ_SEQ_NUM, ZZ_FILE_NAME, ZZ_IMAGE_BLOB) VALUES(?, ? ,? ,empty_blob())";
   ps = conn.prepareStatement(sql);
   ps.setString(1, projectId);
   ps.setString(2, taskId);
   ps.setString(3, fileName);
   ps.executeUpdate();
   sql = "SELECT ZZ_IMAGE_BLOB FROM PS_ZP_PRJ_WBS_BLOB WHERE ZP_PRJ_ID = ? AND ZZ_SEQ_NUM = ? AND ZZ_FILE_NAME = ? FOR UPDATE";
   ps = conn.prepareStatement(sql);
   ps.setString(1, projectId);
   ps.setString(2, taskId);
   ps.setString(3, fileName);
   rs = ps.executeQuery();
   if(rs.next()) {
    blob = (BLOB) rs.getBlob(1);
   }
   InputStream in = new FileInputStream(file);
   OutputStream out = blob.setBinaryStream(1L);
   byte[] buffer = new byte[1024];
   int length = -1;
            while ((length = in.read(buffer)) != -1){
                out.write(buffer, 0, length);
            }
            in.close();
            out.close();
            conn.commit();
            conn.setAutoCommit(true);
            flag = true; 
  }
  catch(Exception e) {
   if(conn != null) {
    try {
     conn.rollback();
    } catch (SQLException e1) {
     e1.printStackTrace();
    }
   }
  }
  finally {
   try {
    rs.close();
    ps.close();
    conn.close();
   }
   catch(Exception e) {
    e.printStackTrace();
   }
  }
  return flag;
 }

 /**
  * <p>根據項目Id,任務Id,文件名讀取數據庫blob字段文件,寫入指定的文件路徑</p>
  * @param projectId
  * @param taskId
  * @param fileName
  * @param file
  * @return 返回是否成功
  */
 public boolean read(String projectId, String taskId, String fileName, String file) {
  Connection conn = null;
  ResultSet rs = null;
  PreparedStatement ps = null;
  BLOB blob = null;
  boolean flag = false;
  try {
   conn = getConnection();
   String sql = "SELECT ZZ_IMAGE_BLOB FROM PS_ZP_PRJ_WBS_BLOB WHERE ZP_PRJ_ID = ? AND ZZ_SEQ_NUM = ? AND ZZ_FILE_NAME = ?";
   ps = conn.prepareStatement(sql);
   ps.setString(1, projectId);
   ps.setString(2, taskId);
   ps.setString(3, fileName);
   rs = ps.executeQuery();
   if(rs.next()) {
    blob = (BLOB) rs.getBlob(1);
   }
   InputStream in = blob.getBinaryStream();
   byte[] buf = new byte[1024];
   int bytesIn = 0;
   FileOutputStream out = new FileOutputStream(file);
   while ((bytesIn = in.read(buf, 0, 1024)) != -1) {
    out.write(buf, 0, bytesIn);
   }
            in.close();
            out.close();
            flag = true;
  }
  catch(Exception e) {
   e.printStackTrace();
  }
  finally {
   try {
    rs.close();
    ps.close();
    conn.close();
   }
   catch(Exception e) {
    e.printStackTrace();
   }
  }
  return flag;
 }

 public static void main(String[] args) {
  BlobUtil bu = BlobUtil.getInstance("MSDEV");
  System.out.println(bu.write("CB", "001", "image1", "D://61e44b02jw1dw4xbp2zo6j.jpg"));
  System.out.println(bu.read("CB", "001", "image1", "D://2.jpg"));
 }

}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久久久久久| 成人免费直播live| 亚洲国产古装精品网站| 亚洲va欧美va在线观看| 91精品在线观看视频| 亚洲丁香婷深爱综合| 美女久久久久久久久久久| 国产精品免费观看在线| 久久这里只有精品视频首页| 国产一区二区三区中文| 欧美激情视频播放| 91精品中文在线| 欧美视频在线视频| 欧美日韩在线视频观看| 91精品久久久久久久久久久久久| 成人福利免费观看| 日本国产精品视频| 国产成人亚洲综合91精品| 蜜臀久久99精品久久久无需会员| 91国偷自产一区二区三区的观看方式| 91精品在线国产| 91九色视频导航| 亚洲精品久久久久久久久久久久| 久久久久久久久久久免费精品| 日本一区二区不卡| 8090成年在线看片午夜| 精品亚洲永久免费精品| 国产色综合天天综合网| 亚洲男女自偷自拍图片另类| 国产亚洲精品综合一区91| 中文字幕亚洲第一| 精品人伦一区二区三区蜜桃网站| 国产精品美女999| 黄色一区二区三区| 久久九九国产精品怡红院| 91精品国产亚洲| 久久久久999| 国产欧美日韩免费看aⅴ视频| 亚洲香蕉伊综合在人在线视看| 欧美高清激情视频| 在线观看亚洲视频| 国产狼人综合免费视频| 欧美午夜女人视频在线| 91免费在线视频网站| 日韩极品精品视频免费观看| 欧美专区在线观看| 国产精品视频免费观看www| 国产精品三级在线| 97不卡在线视频| 亚洲女人被黑人巨大进入| 97免费在线视频| 日韩在线中文字幕| 欧美日韩在线视频一区二区| 俺去啦;欧美日韩| 国产suv精品一区二区| 欧美亚洲成人精品| 91精品国产91久久久久久不卡| 97在线精品国自产拍中文| 国产视频丨精品|在线观看| 九九精品在线观看| 亚洲xxxxx电影| 色婷婷亚洲mv天堂mv在影片| 欧美日韩性视频| 色偷偷噜噜噜亚洲男人| 精品偷拍各种wc美女嘘嘘| 欧美黑人巨大xxx极品| 亚洲一区二区三区毛片| 色综合亚洲精品激情狠狠| 国产成人精品一区二区三区| 综合激情国产一区| 久久免费观看视频| 欧美三级xxx| 亚洲综合社区网| 日韩精品在线观看一区二区| 欧美激情在线视频二区| 国产男女猛烈无遮挡91| 日韩电影在线观看中文字幕| 亚洲精品第一国产综合精品| 亚洲va欧美va在线观看| 国产精品网站入口| 中文字幕av一区二区三区谷原希美| 亚洲人成在线电影| 性欧美在线看片a免费观看| 国产精品欧美在线| 日韩在线观看免费全| 成人免费在线视频网站| 精品magnet| 久久国产精品久久精品| 成人午夜小视频| 久久久久久久爱| 久久97精品久久久久久久不卡| 国产精品成人va在线观看| 狠狠综合久久av一区二区小说| 中文字幕亚洲综合久久| 在线精品国产欧美| 国产日韩欧美电影在线观看| 96精品视频在线| 久久精品国产视频| 欧美在线视频一区| 成人精品一区二区三区| 欧美精品电影免费在线观看| 国产精品欧美激情在线播放| 国产suv精品一区二区三区88区| 欧美日韩999| 欧美一区二区三区免费视| 动漫精品一区二区| 在线看欧美日韩| www国产精品视频| 亚洲片av在线| 97久久精品视频| 欧美成年人在线观看| 久久99亚洲精品| 91精品在线看| 欧美男插女视频| 久久久久九九九九| 国产欧美精品va在线观看| 亚洲天堂av图片| 亚洲欧美中文日韩v在线观看| 色综合久久中文字幕综合网小说| 97碰碰碰免费色视频| 黑人欧美xxxx| 久久大大胆人体| 欧美亚洲国产日本| 亚洲日本成人网| 欧美性视频在线| 两个人的视频www国产精品| 成人妇女淫片aaaa视频| 精品国偷自产在线视频| 国产精品爽爽爽| 中文字幕亚洲图片| 欧美最顶级的aⅴ艳星| 亚洲精品日韩激情在线电影| 色悠久久久久综合先锋影音下载| 98精品国产自产在线观看| 国产成人高潮免费观看精品| 91日韩在线视频| 69av在线视频| 国产精品三级在线| 亚洲www视频| 国产精品久久二区| 色噜噜久久综合伊人一本| 欧美精品久久久久| 免费91麻豆精品国产自产在线观看| 欧美国产精品日韩| 久久久久久久久久久人体| 91在线国产电影| 欧美久久久精品| 亚洲精品国偷自产在线99热| 韩剧1988免费观看全集| 色偷偷9999www| 亚洲最大的网站| 日韩av一区二区在线观看| 欧美午夜片在线免费观看| 国产精品福利小视频| 日韩网站免费观看高清| 久久人体大胆视频| 国产精品视频中文字幕91| 国产精品女主播视频| 亚洲一区二区三区香蕉| 欧美在线一区二区视频| 九九久久久久久久久激情| 欧美成人精品影院| 亚洲激情小视频| 91在线直播亚洲|