以二进制访问。可用byte数组来接收数据。

解决方案 »

  1.   

    java.sql.ResultSet
          getBlob()
          getBytes()
          getClob()
      

  2.   

    itjourney(IT之旅) 可以详细点吗,有例子最好,无限感激!!
      

  3.   

    import java.io.*;
    import java.sql.*;
    public class BlobOperation
    {
    public static void addLob(long id, String binFile) throws SQLException
    {
    Connection con = null;
    PreparedStatement ps = null;
    ResultSet rs = null; try
    {
    con = ConnectionFactory.getConnection(); //换成你自己取连接的方法
    con.setAutoCommit(false); String sql = "INSERT INTO Blob_Tbl(id, binfile, bincontent)";
    sql += " VALUES(?, ?, ?)";
    ps = con.prepareStatement(sql); ps.setLong(1, id);
    ps.setString(2, binFile);
    ps.setBlob(3, oracle.sql.BLOB.empty_lob()); ps.executeUpdate();
    //DatabaseUtils.closeObject(ps); ps = con.prepareStatement("SELECT bincontent FROM Blob_Tbl WHERE id = " + id + " for update ");
    rs = ps.executeQuery(); if (rs.next())
    {
    oracle.sql.BLOB binContent = (oracle.sql.BLOB) rs.getBlob(1); /* write blob content */
    OutputStream binOut = binContent.getBinaryOutputStream();
    BufferedOutputStream out = new BufferedOutputStream(binOut);
    BufferedInputStream in = new BufferedInputStream(new FileInputStream(binFile));
    int c;
    while ((c = in.read()) != -1)
    {
    out.write(c);
    }
    in.close();
    out.close();
    }
    con.commit();
    } catch (Exception e)
    {
    e.printStackTrace();
    try
    {
    con.rollback();
    } catch (SQLException se)
    {
    }
    throw new SQLException(e.getMessage());
    } finally
    {
    DatabaseUtils.closeObject(rs, ps, con);
    }
    } public static void fetchLob(long id, String filename) throws SQLException
    {
    Connection con = null;
    Statement st = null;
    ResultSet rs = null; try
    {
    con = ConnectionFactory.getConnection(); String sql = "SELECT *  From Blob_Tbl Where id = " + id;
    st = con.createStatement(); rs = st.executeQuery(sql);
    while (rs.next())
    { String binFile = rs.getString("binfile");
    oracle.sql.BLOB binContent = (oracle.sql.BLOB) rs.getBlob("bincontent"); /* read blob content */
    BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(filename));
    BufferedInputStream in = new BufferedInputStream(binContent.getBinaryStream()); int c;
    while ((c = in.read()) != -1)
    {
    out.write(c);
    }
    in.close();
    out.close();
    } } catch (Exception e)
    {
    throw new SQLException(e.getMessage());
    } finally
    {
    DatabaseUtils.closeObject(rs, st, con);
    }
    } public static void main(String[] args) throws Exception
    {
    if (args.length == 0)
    {
    addLob(1, "a.jpg");
    } else
    {
    fetchLob(1, args[0]);
    }
    }
    }自己把有的东西改下吧