readblob.java

来自「jdbc 源代码」· Java 代码 · 共 55 行

JAVA
55
字号
package com.jdbclab;
import java.sql.*;
import java.io.*;

public class ReadBlob 
{
	public static void main(String[] args){
	  if(args.length!=1){
	    System.out.println(
		  "Usage: java com.jdbclab.ReadBlob filename");
	    return;
	  }
	  Blob blob = null;
	  Connection con = null;
	  PreparedStatement ps = null;
	  ResultSet rs = null;
	  String sql = 
		  "select blobData from t_sd0709_blob"+
		  " where id=?";
	  String filename = args[0];
	  int id = 1;
	  try{
	    con = JdbcUtil.getConnection();
		con.setAutoCommit(false);
        ps = con.prepareStatement(sql);
        ps.setInt(1,id);
		rs = ps.executeQuery();
		if(rs!=null && rs.next()){
		  blob = rs.getBlob(1);
		}

		InputStream in = blob.getBinaryStream();
		OutputStream out = new FileOutputStream(filename);
		//byte[] content = new byte[in.available()];
		int b = 0; int a = 0;
		while((b=in.read())!=-1){
		  out.write(b);
		  if(++a%1024==0){
		    System.out.println("我们读到了"+
				a/1024+"kb ... ...");
		  }
		}
		in.close();
		out.close();
		con.commit();
	  }catch(Exception e){
	    e.printStackTrace();
		if(con!=null){
		  try{con.rollback();}catch(Exception ex){ex.printStackTrace();}
		}
	  }finally{
	    JdbcUtil.release(rs,ps,con);
	  }
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?