2018.7.30 Oracle的Bolog數據庫類型讀取和存儲
阿新 • • 發佈:2018-07-30
!= stmt static val ktr 方法 tab ner oid
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數據庫類型讀取和存儲