如何在Java servlet中的插入查询中将字符串类型转换为二进制类型

时间:2017-03-27 11:52:28

标签: java mysql servlets jdbc

这里我将数据插入sql server表中的一列数据类型是它存储的二进制类型数据

当我尝试传递数据时,它会显示错误消息以及如何插入此

String ins="insert into Users(ID,Name,Password)     values(?,?,?)";

ps.setString(1,id); 
ps.setString(2,Name); 
ps.setString(3,password);  

1 个答案:

答案 0 :(得分:3)

您需要将密码String对象转换为byte[]并使用preparedStatement.setBytes方法,如下所示:

byte[] passwordBytes = password.getBytes();
ps.setBytes(9,passwordBytes);  
  

我现在收到此错误::   com.microsoft.sqlserver.jdbc.SQLServerException:转换失败   在转换nvarchar值时,SuperUser'到数据类型int

您的代码存在的问题是您对所有数据类型使用preparedStatement.setString 您需要根据数据库表的列设计使用preparedStatement.setInt其他合适的方法(查看here for API) < / p>

此外,我强烈建议关闭preparestatement块中的finally对象或使用资源试用,否则您将耗尽资源。