JAVA讀取Oracle資料庫BLOB欄位資料檔案並儲存到本地檔案

來源:互聯網
上載者:User

標籤:

******JAVA讀取Oracle資料庫BLOB欄位資料檔案並儲存到本地檔案******

package com.bo.test;import java.io.FileOutputStream;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * 樣本說明: * JAVA讀取Oracle資料庫BLOB欄位資料檔案並儲存到本地檔案 * 1. 使用Oracle的JDBC驅動。 * 2. BLOB欄位中儲存的是一個檔案,把BLOB欄位中儲存的內容儲存到磁碟中形成檔案。 * 程式碼片斷如下: *  * @author YaoYuanbo    * @emile [email protected] * */public class ReadDBIo2File {public ReadDBIo2File() {}public static void main(String args[]) {ReadDBIo2File test = new ReadDBIo2File();if (test.getDate()) {System.out.print("操作成功!");} else {System.out.print("操作異常!");}}public boolean getDate() {Connection conn = null;Statement sql = null;ResultSet rs = null;try {try {// Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// String sourceURL = "jdbc:odbc:ORDB";Class.forName("oracle.jdbc.driver.OracleDriver");String sourceURL = "jdbc:oracle:thin:@192.168.12.251:1521:oracle";String user = "hhus";String password = "hhus";conn = DriverManager.getConnection(sourceURL, user, password);sql = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);// 註:“ini”欄位為BLOB欄位String sqlstr = "select * from report_file t where t.studyid = ‘6475880‘  ";rs = sql.executeQuery(sqlstr);while (rs.next()) {String name = rs.getString("studyid");// 如下使用JdbcOdbcDriver則報錯:Hit uncaught exception// java.lang.UnsupportedOperationException// java.sql.Blob blob = rs.getBlob("ini");// 注意這裡的寫法:使用的是OracleDriveroracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("reportfile");String filepath = "C:/" + name + ".pdf";System.out.println("輸出檔案路徑為:" + filepath);try {InputStream in = blob.getBinaryStream(); // 建立輸出資料流FileOutputStream file = new FileOutputStream(filepath);int len = (int) blob.length();byte[] buffer = new byte[len]; // 建立緩衝區while ((len = in.read(buffer)) != -1) {file.write(buffer, 0, len);}file.close();in.close();} catch (Exception e) {System.out.println("I/O Exception.");return false;}}} finally {rs.close();sql.close();conn.close();}} catch (SQLException e) {System.out.println("SQLException.");return false;} catch (ClassNotFoundException e) {System.out.println("ClassNotFoundException.");return false;}return true;}}

  

JAVA讀取Oracle資料庫BLOB欄位資料檔案並儲存到本地檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.