这个是把图片显示在浏览器上的
package struts.action;import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class EnrolRushRedLightPhotoManagePhotoDisplayAction extends Action 
{
        public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response) 
 {
  String username,password,url;
  Connection conn = null;
  Statement stmt = null;
  BufferedInputStream inputimage=null;
  username="dzjc";
  password="dzjc";
  url ="jdbc:oracle:thin:@192.168.1.134:1521:zhpt";
  try 
  {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   try 
   {
    conn=DriverManager.getConnection(url,username,password);
    stmt=conn.createStatement();
    boolean defaultCommit = conn.getAutoCommit();
    conn.setAutoCommit(false);
    ResultSet rs = stmt.executeQuery("SELECT img FROM dzjc_img");
    while (rs.next()) 
    {
     oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("img");
     inputimage = new BufferedInputStream(blob.getBinaryStream());
    }
    conn.setAutoCommit(defaultCommit);
   } 
   catch (SQLException e) 
   {
    e.printStackTrace();
    System.out.println("blobRead()'s exception"+e);
    try 
    {
     conn.rollback();
     throw e;
    } 
    catch (SQLException e1) 
    {
     e1.printStackTrace();
    }
   }
  } 
  catch (ClassNotFoundException e1) 
  {
   e1.printStackTrace();
  }
  BufferedImage image = null;
  try
  {
   image = ImageIO.read(inputimage);
   ServletOutputStream sos = response.getOutputStream();
   JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
   encoder.encode(image);
   inputimage.close();
  }
  catch(IOException e)
  {
   System.out.println(e);
  }
  return mapping.findForward("display");
 }
}
下边这个是把硬盘上的文件存到数据库里,你可以跟上个类关联起来一起用
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JFileChooser;
import oracle.jdbc.driver.OracleConnection;
public class Write
{
 public static void main(String[] args)
 {
  try {
   Writewatdb = new Write();
   watdb.sendToDb();
  } catch (SQLException e) {
   e.printStackTrace();
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
 Connection conn;
 Statement stmt;
 ResultSet rs;
 int bufferSize;
 public Write() throws SQLException, ClassNotFoundException 
 {
  String connectString;
  Class.forName("oracle.jdbc.driver.OracleDriver");
  connectString = "jdbc:oracle:thin:@192.168.1.134:1521:zhpt";
  conn = (OracleConnection)
  DriverManager.getConnection(connectString, "dzjc","dzjc");
  stmt = conn.createStatement();
 }
 public void sendToDb() 
 {
        int amount = 0;
  OutputStream out = null;
  BufferedInputStream in = null;
  JFileChooser chooser = new JFileChooser();
  int returnVal = chooser.showOpenDialog(null);
  if (returnVal == JFileChooser.APPROVE_OPTION)
  {
   pathname = chooser.getSelectedFile().getAbsolutePath();
   name = chooser.getSelectedFile().getName();
   chooser = null;
  }
  else
  {
   System.out.println("没有找到文件!");
   System.out.println("程序非正常结束...");
   return;
  }
  try
  {
   conn.setAutoCommit(false);
   stmt.executeUpdate("insert into dzjc_img(img) values (empty_blob())");
   rs = stmt.executeQuery("select img from dzjc_img for update");
   if (rs.next()) 
   {
    Blob blob = rs.getBlob("img");
    out = ( (oracle.sql.BLOB) blob).getBinaryOutputStream();
    bufferSize = ( (oracle.sql.BLOB) blob).getBufferSize();
    in = new BufferedInputStream(new FileInputStream(pathname), bufferSize);
 
    byte[] b = new byte[bufferSize];
    int count = in.read(b, 0, bufferSize);
    while (count != -1) 
    {
     out.write(b, 0, count);
     amount += count;
     System.out.println("处理了" + amount + "字节.");
     count = in.read(b, 0, bufferSize);
     System.out.println("处理了" + amount + "字节,成功.");
    }
    out.close();
    out = null;
    in.close();
    in = null;
    conn.commit();
   }
  }
  catch (Exception e) 
  {
   e.printStackTrace();
   try 
   {
    conn.rollback();
   }
   catch (Exception ignored) {}
  }
  finally 
  {
   if (out!=null) try{out.close();} catch(Exception igored){}
   if (in!=null) try{in.close();} catch(Exception igored){}
  }
 }
}