1. 程式人生 > >大物件的處理

大物件的處理

大物件的處理


儲存大物件

1.使用Collection.createBlob()建立一個Blob物件
2.獲得這個Blob物件的輸出流,setBinaryStream(1)
3.向流中寫入位元組
4.通過ps.setBlob()將二進位制存在資料庫中

PreparedStatement ps=conn.prepareStatement(sql);
Blob blob=conn.createBlob();//建立blob物件
OutputStream os=blob.setBinaryStream(1);//獲得blob輸出流
FileInputStream fis=new
FileInputStream(path); byte[] bs=new byte[100];//設定緩衝區 int size=-1; while((size=fis.read(bs))!=-1){ os.write(bs,0,size); } fis.close(); os.close();

讀取大物件

1.查詢出ResultSet
2.獲取Blob物件
3.獲得這個物件的輸入流
4.向流中寫入位元組

	String sql="select * from emp where empno=?";
	PreparedStatement ps=conn.prepareStatement
(sql); ps.setInt(1,empno); ResultSet rs=ps.executeQuery();//獲取ResultSet if(rs.next()){ Blob b=rs.getBlob();//獲取Blob物件 InputStream is=b.getBinaryStream(); FileOutputStream fos=new FileOutputStream(Filename); } byte bs=new byte[100]; int size=-1; while((size=is.read())!=-1){ fos.write(bs,0,size);
} fos.close(); is.close();