ResultSet不适用于INSERT查询?错误消息:类型不匹配:无法从int转换为字符串

问题描述:

我认为我在'resultset'错误。我对插入数据的代码是:ResultSet不适用于INSERT查询?错误消息:类型不匹配:无法从int转换为字符串

ResultSet columns = statement.executeUpdate("INSERT INTO Feedback (Username, Feedbacks) VALUES('" + user + "','"+ msg +"')"); 

的编译错误是:

类型不匹配:不能从你能帮我int转换成字符串

Statement#executeUpdate()不返回ResultSet,而是代表受影响的行的int。修复如下。

int affectedRows = statement.executeUpdate(sql); 

或者如果您对受影响行的数量不感兴趣,请忽略它。

statement.executeUpdate(sql); 

顺便说一句,在自己的编译错误是怪异。你不是在看错线吗?该错误告诉您试图将int结果指定给String,但是您的代码显示您试图将int结果指定给ResultSet


这就是说和无关到当前的问题,如果usermsg是用户控制的输入的部分,那么这一段代码是容易发生SQL injectionattacks。我强烈建议用PreparedStatement替换Statement。另请参阅this tutorial如何使用预准备语句。

+0

感谢百万IT工作,我是如此血腥愚蠢,你是我的幸存者!感谢您的快速回复! – Dayne 2010-11-26 02:39:43