也许你取出来显示的时候程序已经帮你转成String了.

解决方案 »

  1.   

    楼主用的BLOB还是其他的类型?
    程序哪?
      

  2.   


          pstmt.setBytes(3,encyPwd);
          pstmt.executeUpdate();
    其中encyPwd是一个byte[]类型,存在数据库的一个叫PASSWORD,该字段是BLOB类型取数据是: if(rs.next()){
            encyPwd=(byte[])rs.getBytes("passwordency");
          }其中ENCYPWD是一个byte[]类型
    但我在写入和打印的时侯就是
    system.out.println(encypwd)发觉不一样
    用Arrays.equals(inputEncyPwd,outputEncyPwd)也不一样,为什么??有什么解决办法吗?我是要出比较,现在还没做加密只是想得到写入和取出一致?
      

  3.   

    byte[]是个数组!!
    你传进去的是地址!
      

  4.   

    up顺便请大家看看这个贴子, 关于POI的,谢谢.
    http://community.csdn.net/Expert/topic/3706/3706109.xml?temp=.6670801
      

  5.   

    呵呵,楼主这样对BLOB操作是行不通地:)如果你不是用的jdbc 的第四种类型的连接,还是按照下面的步骤来做咯
    1。先在blob中插入empty_blob()
    2。获得对刚刚插入记录的引用
    BLOB blob = (BLOB) rs.getBlob("你的blob字段名称"); 
    3。写入
    OutputStream out = blob.getBinaryOutputStream();
    out.write(ENCYPWD);//注意这里
      

  6.   

    1.blob  = rs.getBlob("你的blob字段名称"); 
    2. 
    InputStream is = picture.getBinaryStream();
    int length = (int) blob.length();
    byte[] buffer = new byte[length];
    is.read(buffer);
    is.close();
    3.你有了is就随便处理了
    比如说输出到一个文件
    FileOutputStream fo = new FileOutputStream(filename);//数据到的文件名
    fo.write(buffer);
    fo.close();
      

  7.   

    不好意识纠正一下
    上面的2的第一行为InputStream is = blob.getBinaryStream();