回 帖 发 新 帖 刷新版面

主题:java存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个回复)

沙发

str=new String(b,"GB2312");

我来回复

您尚未登录,请登录后再回复。点此登录或注册