你可以用通过先stat.getBlob得到这个对象,然后保存到内存中,修改以后就可以setBlob了

解决方案 »

  1.   

    public static void insertblob() {
        Connection conn = null;
        PreparedStatement pst = null;
        ResultSet rs = null;
        FileInputStream inStream = null;
        try {
          conn = new SQLDataBaseDAO2().getConnection();//此处取连接
          conn.setAutoCommit(false);//关键,好象不可少
          String sqlStr =
              "insert into bintable (icol2,idd2) values (empty_blob(),100)";
          String sqlQuery = "select icol2 from bintable where idd2=100 for update";
          pst = conn.prepareStatement(sqlStr);
          File file = new File("C:/dd.bmp");
          inStream = new FileInputStream(file);
          byte[] buffer = new byte[inStream.available()];      pst.executeUpdate();
          conn.commit();      rs = pst.executeQuery(sqlQuery);
          if (rs.next()) {
            BLOB blob = ( (OracleResultSet) rs).getBLOB("icol2");
            OutputStream outStream = blob.getBinaryOutputStream();
            inStream.read(buffer);
            outStream.write(buffer);
            outStream.flush();
            pst.execute("commit");
            outStream.close();
            System.out.println("ok");
          }
        }
        catch (Exception e) {
          e.printStackTrace();
        }
        finally {
          try {
            if (rs != null) {
              rs.close();
            }
            if (pst != null) {
              pst.close();
            }
            if (conn != null) {
              conn.close();
            }
          }
          catch (SQLException se) {
            se.printStackTrace();
          }
          try {
            if (inStream != null) {
              inStream.close();
            }
          }
          catch (IOException ie) {
            ie.printStackTrace();
          }
        }
      }
      

  2.   

    那如何将textfield中的内容(为BLOB型)输入到数据库中,以及如何将数据库中的BLOB型字段内容取到textfield中?