使用JDBC处理二进制数据
    /*     
Database Programming with JDBC and Java, Second Edition   
By George Reese   
ISBN: 1-56592-616-1     
Publisher: O'Reilly     
*/         
import java.io.BufferedOutputStream;    
import java.io.File;    
import java.io.FileInputStream;    
import java.io.FileOutputStream;    
import java.sql.Blob;    
import java.sql.Connection;    
import java.sql.DriverManager;    
import java.sql.PreparedStatement;    
import java.sql.ResultSet;       
/**   
 * Example 4.2.   
 */   
public class Blobs {    
  public static void main(String args[]) {    
    if (args.length != 1) {    
      System.err.println("Syntax: <java Blobs [driver] [url] "   
          + "[uid] [pass] [file]");    
      return;    
    }    
    try {    
      Class.forName(args[0]).newInstance();    
      Connection con = DriverManager.getConnection(args[1], args[2],    
          args[3]);    
      File f = new File(args[4]);    
      PreparedStatement stmt;       
      if (!f.exists()) {    
        // if the file does not exist    
        // retrieve it from the database and write it to the named file    
        ResultSet rs;       
        stmt = con.prepareStatement("SELECT blobData "   
            + "FROM BlobTest " + "WHERE fileName = ?");       
        stmt.setString(1, args[0]);    
        rs = stmt.executeQuery();    
        if (!rs.next()) {    
          System.out.println("No such file stored.");    
        } else {    
          Blob b = rs.getBlob(1);    
          BufferedOutputStream os;       
          os = new BufferedOutputStream(new FileOutputStream(f));    
          os.write(b.getBytes(0, (int) b.length()), 0, (int) b    
              .length());    
          os.flush();    
          os.close();    
        }    
      } else {