//读取
rs = 你的sql的结果集
      while (rs.next()) {
        Blob blob = rs.getBlob("您老人家存的字段");
        ByteArrayInputStream bais = new ByteArrayInputStream(blob.getBytes(1,
            (int) blob.length()));
        ObjectInputStream obis = new ObjectInputStream(bais);
        (什么类型) ele = (类型) obis.readObject();
         //你存的是什么类型,取出来牵制转换下
}

解决方案 »

  1.   

    //塞进去
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
              ObjectOutputStream oos = new ObjectOutputStream(bos);          //调用方法重新计算组件的大小、两个参数迭代器,一个用来计算bounds,一个用来设置大小
              ResizeDiy resizediy = new ResizeDiy(theApp.getModel().getIterator(),
                  theApp.getModel().getIterator());
              resizediy.resetModel();
              oos.writeObject(theApp.getModel());          ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
              //非开关sql
              String sql =
                  "insert into Equp(id,Equpname,Equp_f,Equp_type) values ("
                  + "off_Equp_id.nextval,'" + input + "',?,'" + groupname + "')";
              PreparedStatement pstate = datesource.getcon().prepareStatement(sql);
              pstate.setBinaryStream(1, bis, bis.available());
              pstate.execute();
              bis.available();
              pstate.close();
      

  2.   

    上面的错了没有修改,从来
    //塞进去
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
              ObjectOutputStream oos = new ObjectOutputStream(bos);
              oos.writeObject(“您老人家要存的东西”);          ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
              String sql =“您老人家的sql 语句,?”//?代表你的字段内容
              PreparedStatement pstate = datesource.getcon().prepareStatement(sql);
              pstate.setBinaryStream(1, bis, bis.available());
              pstate.execute();
              bis.available();
              pstate.close();
    呵呵!塞进去!恭喜!
      

  3.   

    csdn144 (令狐冲) :
    有必要吗?没有必要,到底有没有必要,就讨论一下吗?这么兴奋干什么名?pstate.close();你不搞!哼!哼哼!呵呵!如果你的pstate过多的话,导致游标超出范围!例如你在一个while循环里搞,
    那么搞的结果就是游标超出范围!呵呵!当然系统小的时候是看不出来的!是的!呵呵!是的!
    别嫌我烦!
    俺只是个女农民,俺容易吗俺!
    你还放着好好的分不给人家,人家心里课着急了!你只要把分给人家让人家干什么都中----------------------------这是谁的分呀这是偶的分!
      

  4.   

    上面是针对些需要序列化的对象而言,如照片话,下:
    File file=new File("f:\\object.jpg"); 
    out.println(file.length());
    java.io.FileInputStream filein=new FileInputStream(file); 
    PreparedStatement st1=conn.prepareStatement("update table set ob=?");
    st1.setBinaryStream(1,fileint,2000);
    st1.executeUpdate();
    filein.close();
      

  5.   

    根据你的提议,做个了函数。可数据还是插不进去。费神您再帮我瞅瞅。分给定你了。         public boolean insertImage(String fileName)
    {
    int fileSize;
    ByteArrayInputStream bis;
    try
    {
    ImageIcon image = new ImageIcon(fileName);
    log("生成imageicon");

    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(bos);
    oos.writeObject(image);
    log("存入ObjectOutputStream");

          bis = new ByteArrayInputStream(bos.toByteArray());
          fileSize = bis.available();
    log("存入ByteArrayInputStream, size: " + fileSize);
    }
    catch (Exception E)
    {
    log("读入文件流错误!");
    return false;
    }


    String sql = "delete from TEST";
    try
    {
    smt.executeUpdate(sql);
    }
    catch (SQLException E)
    {
    log("删除数据错误!");
    }

    sql = "insert into TEST(ID, NAME) values(?,?)"; 

    try
    {
    pstmt = FCon.prepareStatement(sql); 
    pstmt.setInt(1, 100);

    pstmt.setBinaryStream(2, bis, fileSize);
    pstmt.executeUpdate(); pstmt.close();
    log("数据流写入数据库成功!");
    }
    catch (SQLException E)
    {
    log("文件流写入数据库错误!");
    E.printStackTrace();
    return false;
    }

    return true;
    }
      

  6.   

    如果纯纯的图片,不需要自己序列化的
    File file=new File("f:\\object.jpg"); 
    out.println(file.length());
    java.io.FileInputStream filein=new FileInputStream(file); 
    PreparedStatement st1=conn.prepareStatement("update table set ob=?");
    st1.setBinaryStream(1,fileint,2000);
    st1.executeUpdate();
    filein.close();
      

  7.   

    java.sql.SQLException: Io 异常: Connection reset
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:323)
            at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:604)
            at oracle.jdbc.driver.OraclePreparedStatement.privateClose(OraclePrepare
    dStatement.java:290)
            at oracle.jdbc.driver.OraclePreparedStatement.close(OraclePreparedStatem
    ent.java:235)
            at dbImage.insertImage(dbImage.java:172)
            at dbImage.main(dbImage.java:189)
    Press any key to continue...
      

  8.   

    这是偶刚给你试过的,说了几遍了不需要自己序列化的纯纯图片!就这样!
    你再说错,俺就叫人打你!
    试!
    try {
          bka b = new bka();//您的数据库连接
          File file=new File("c:\\ball.gif");
          java.io.FileInputStream filein=new FileInputStream(file);
          PreparedStatement st1=b.getcon().prepareStatement(
              "insert into Equp(id,Equp_f) values ("
                  + "off_Equp_id.nextval,?)");
          st1.setBinaryStream(1,filein,2000);
          st1.executeUpdate();
          filein.close();
      
        }
        catch(Exception e) {
          e.printStackTrace();
        }