[英]ResultSet is not for INSERT query? Error message: Type mismatch: cannot convert from int to String
我認為我在'結果集'中弄錯了。 我的插入數據的代碼是:
ResultSet columns = statement.executeUpdate("INSERT INTO Feedback (Username, Feedbacks) VALUES( '" + user + "','"+ msg +"')");
編譯錯誤是:
類型不匹配:無法從int轉換為String
你能幫助我嗎?
Statement#executeUpdate()
不返回ResultSet
,而是返回表示受影響行的int
。 修復如下。
int affectedRows = statement.executeUpdate(sql);
或者,如果您對受影響的行數量不感興趣,請忽略它。
statement.executeUpdate(sql);
順便說一句,編譯錯誤本身就很奇怪。 你不是在看錯線嗎? 該錯誤告訴您正在嘗試將int
結果分配給String
,但您的代碼顯示您正在嘗試將int
結果分配給ResultSet
。
這說明與當前問題無關,如果user
和msg
是用戶控制輸入的一部分,那么這段代碼很容易受到SQL注入 攻擊 。 我強烈建議用PreparedStatement
替換Statement
。 另請參閱本教程如何使用預准備語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.