参考:
package demo;import java.sql.*;
import java.io.*;
import oracle.sql.BLOB;
import oracle.jdbc.*;//此程序的作用:向test(字段为name varchar2;b blob)库,插入一个文件(read.txt),再将其从库中读出,写到ok.txt中public class orablob
{
  public void orablob()
{}
  public static void insertblob()
  {
  try
  {
//首先是将文件输入到数据库。
    Class.forName("oracle.jdbc.driver.OracleDriver");//注册数据库引擎。
    Connection conn= DriverManager.getConnection("dburl=jdbc:oracle:thin:@yf:1521:kjb", "kjb", "KJBMostJ2EEOraDB");//建立连接串
    conn.setAutoCommit(false);//关闭自动提交,以提高性能。
    Statement stmt=conn.createStatement();//建立会话
   
   try
   {
     stmt.execute ("drop table test");
   }
   catch (SQLException e)
   {
     // An exception could be raised here if the table did not exist already.
   }
  stmt.execute ("create table test (fname varchar2(600),bx blob)");    File file=new File("D:\\test\\Icon.jpg");
    InputStream is=new FileInputStream(file);//创建输入流,将外部文件输入到InputStream 中。
    System.out.print(file.length());
    byte[] blobByte=new byte[is.available()];
   is.read(blobByte);
   is.close();
    PreparedStatement pstmt=conn.prepareStatement("INSERT INTO TEST  VALUES (?,?)");
    pstmt.setString(1,file.getName());
    pstmt.setBinaryStream(2,(new ByteArrayInputStream(blobByte)), blobByte.length);
    pstmt.executeUpdate();//将文件流插入到数据库中。
    pstmt.close();//以下是从库中读取文件。
    ResultSet rset=stmt.executeQuery("SELECT * from test");
    while (rset.next())
      {// Get LOB locators into Java wrapper classes.
        BLOB blob=((OracleResultSet)rset).getBLOB(2);//获取文件字段。
        // int chunk=blob.getChunkSize();
       int chunk=blob.getChunkSize();
      byte [] buffer=new byte[chunk];
        System.out.println(chunk);        File binaryFile=new File("D:\\test\\Ora.java");
        FileOutputStream fileoutstream=new FileOutputStream(binaryFile);//创建文件输出流。
        InputStream instream=blob.getBinaryStream();//建立输入流,并将字段comment的值以流的形式,放入instream变量。
        instream.read(buffer,0,chunk);//将文件流存入变量buffer,以buffer为中转
        fileoutstream.write(buffer,0,chunk);//将buffer写入文件输出流。
        System.out.println("write ok!");
        instream.close();//关闭流
        fileoutstream.close();
      }
    rset.close();
    stmt.close();
    conn.close();
    System.out.print("ok");
  }
  catch(Exception ee)
  {
      System.out.println(ee.getMessage());
  }
  }
      public static void main(String args[])
    {
     insertblob();
}}