我认为我在'结果集'中弄错了。我插入数据的代码是:
ResultSet columns = statement.executeUpdate("INSERT INTO Feedback (Username, Feedbacks) VALUES( '" + user + "','"+ msg +"')");
编译错误是:
类型不匹配:无法从int转换为String
你能帮助我吗?
答案 0 :(得分:4)
Statement#executeUpdate()
不会返回ResultSet
,而是int
代表受影响的行。修复如下。
int affectedRows = statement.executeUpdate(sql);
或者,如果您对受影响的行数量不感兴趣,请忽略它。
statement.executeUpdate(sql);
顺便说一句,编译错误本身就很奇怪。你不是在看错线吗?该错误表明您尝试将int
结果分配给String
,但您的代码显示您尝试将int
结果分配给ResultSet
。
如果user
和msg
是用户控制输入的一部分,那么说明并与您当前的问题无关,那么这段代码很容易SQL injection attacks 。我强烈建议您将Statement
替换为PreparedStatement
。另请参阅this tutorial如何使用预准备语句。