標籤:public src 項目 eclipse 字元 imp 取圖 exception catch
package com.lanqiao.shopping.test;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.lanqiao.shopping.utils.DBHelper;public class Test { static PreparedStatement pstmt = null; static ResultSet rs = null; /* * 建立圖片的表myPicture * create table myPicture(id number(4) primary key,img blob); */ //將圖片寫進資料庫 public static void writeImgToBolb(){ Connection conn = DBHelper.getConn(); String sql = "insert into myPicture(id,img) values(?,?)"; try { pstmt = conn.prepareStatement(sql); pstmt.setInt(1,3);//id //將圖片轉為輸入資料流 File file = new File("D:\\Eclipse\\ImagesSave\\one.jpg"); InputStream in = new FileInputStream(file); /* String a = "sss"; System.out.println(a.length());//字串是length方法 int[] i = new int[5];//數組是length屬性 System.out.println(i.length);*/ //將輸入資料流寫入到myPicture表 pstmt.setBinaryStream(2, in,(int)file.length()); int result = pstmt.executeUpdate(); System.out.println("111"); if(result>0){ System.out.println("圖片寫入成功"); }else{ System.out.println("圖片寫入失敗"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { DBHelper.closeConn(null, pstmt, conn); } } //從資料庫讀取圖片 public static void readImgToBlob(){ Connection conn = DBHelper.getConn(); String sql = "select * from myPicture where id=?"; try { pstmt = conn.prepareStatement(sql); pstmt.setInt(1, 1);//id =1 rs = pstmt.executeQuery(); if(rs.next()){ //將圖片從資料庫中讀取出來,類型為InputStream InputStream imgIn = rs.getBinaryStream("img"); //通過IO流,將圖片寫到項目中(硬碟) InputStream in = new BufferedInputStream(imgIn); //將圖片的輸出路徑設定為src(相對路徑),圖片名為myPic.png OutputStream imgOut = new FileOutputStream("D:\\Eclipse\\ImagesSave\\myPic.jpg"); OutputStream out = new BufferedOutputStream(imgOut); int len = -1; while((len=in.read())!=-1){ out.write(len); } imgOut.close(); out.close(); imgIn.close(); in.close(); System.out.println("照片讀取成功"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { DBHelper.closeConn(rs, pstmt, conn); } } public static void main(String[] args) { //writeImgToBolb(); readImgToBlob(); }}
2018.7.30 Oracle的Bolog資料庫類型讀取和儲存