这里我将数据插入sql server表中的一列数据类型是它存储的二进制类型数据
当我尝试传递数据时,它会显示错误消息以及如何插入此
String ins="insert into Users(ID,Name,Password) values(?,?,?)";
ps.setString(1,id);
ps.setString(2,Name);
ps.setString(3,password);
答案 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
对象或使用资源试用,否则您将耗尽资源。