日期:2014-05-16  浏览次数:20493 次

数据库存byte[]问题
    写个小程序,发现个小问题.
      String str="abcdefjackd1234567";
      byte bytes[]=str.getBytes();
      String sql="insert into test(srccontend) values(?)";
      PreparedStatement pst=conn.prepareStatement(sql);
      pst.setBytes(1,bytes);
      pst.executeUpdate();

     
      将 bytes[]增加到数据后,再取出
       sql="select srccontend from guest where id=60";
      pst=conn.prepareStatement(sql);
      ResultSet rs=pst.executeQuery();
      byte []b=null;
      if(rs.next()){
       b=rs.getBytes("srccontend");
       System.out.println("b==="+b);
      }
       //通过byte[]还原字符串
       	System.out.println("new String(b)==="+new String(b));  //从数据库中取出不行
	System.out.println("new String(bytes)==="+new String(bytes)); //这个可以

    我不明白,为什么从数据库中,取出来的 byte[]不行呢?
   jdk 1.6,数据库 mysql 5.0,srccontend数据类型,我用varchar和text都试过,不行.
  想问下,如果我把String 转成byte[]存到数据库,再取出来,还原到String,如何实现呢?
1 楼 weiqingfei 2007-12-17  
blob

2 楼 jones 2007-12-17  
mysql编码问题
3 楼 myworkfirst 2007-12-17  
  我改了 blob还是不行的。
    mysql编码问题?
  我想在就是想把 String变成byte[]存到数据库,然后取出来,还原成String.