比如说,我要将一个byte数组a存储在数据库中,我写了一个ArraySerial类来包装它实现序列化:public class ArraySerial implements Serializable {
  byte[] a;
  public ArraySerial(byte[] a) {
    this.a = a;
  }
  public byte[] getArray(){
    return a;
  }
}
然后我利用insert语句将该类插入数据库INSET INTO TEMP

解决方案 »

  1.   

    INSERT INTO TEMP VALUES ('as');//as是ArraySerial的一个对象引用之后利用查询语句查询该对象就不能还原了,是不是插入语句有问题,如果有应该怎么改呢??
      

  2.   

    java.sql.Connection conn = ......;
    java.sql.PreparedStatement pstmt = conn.prepareStatement("INSERT INTO TEMP VALUES (?)");
    ArraySerial  as = new ArraySerial  ();
    ...
    pstmt.setObject(1,as);
    pstmt.executeUpdate();
    这样应该可以了.
      

  3.   

    改了,但是运行的时候又报错了!!java.sql.SQLException: SQL Exception : Unknown SQL Type for PreparedStatement.setObject (SQL Type=2000 at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setObject(JdbcOdbcPreparedStatement.java:1415) at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setObject(JdbcOdbcPreparedStatement.java:1072) at HttpCapture.main(HttpCapture.java:304)SQL Exception : Unknown SQL Type for PreparedStatement.setObject (SQL Type=2000之后又改成:
    pstmt.setObject(1,as,2000);
    同样还是报错,然后我又随便将一个对象传入也是报同样的错!pstmt.setObjcet(1,new Object());
    这样写也是报错,这是怎么回事啊!?
      

  4.   

    应该是JDBC-ODBC桥,本身不支持这种操作.建议更换一种数据库.用JDBC thin模式连接数据库.