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
。
这就是说和无关到当前的问题,如果user
和msg
是用户控制的输入的部分,那么这一段代码是容易发生SQL injectionattacks。我强烈建议用PreparedStatement
替换Statement
。另请参阅this tutorial如何使用预准备语句。
感谢百万IT工作,我是如此血腥愚蠢,你是我的幸存者!感谢您的快速回复! – Dayne 2010-11-26 02:39:43