主题: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,如何实现呢?
代码
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,如何实现呢?