开发者

ResultSet is not for INSERT query? Error message: Type mismatch: cannot convert from int to String

开发者 https://www.devze.com 2023-01-26 19:55 出处:网络
I think I got it wrong at the \'resultset\'. My code for inserting data is : ResultSet columns = statement.executeUpdate(\"INSERT INTO Feedback (Username, Feedbacks) VALUES( \'\" + user + \"\',\'\"+

I think I got it wrong at the 'resultset'. My code for inserting data is :

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

The compilation error is:

Type mismatch: cannot convert from int to Str开发者_如何转开发ing

Can you help me?


Statement#executeUpdate() doesn't return a ResultSet, but an int representing the affected rows. Fix it as follows.

int affectedRows = statement.executeUpdate(sql);

Or if you aren't interested in the amount of affected rows, just ignore it.

statement.executeUpdate(sql);

By the way, the compilation error at its own is weird. Aren't you looking at the wrong line? The error tells that you're trying to assign an int result to a String, but your code shows that you're trying to assign int result to a ResultSet.


That said and unrelated to your current problem, if user and msg are parts of user-controlled input, then this piece of code is prone to SQL injection attacks. I strongly recommend to replace Statement by PreparedStatement then. See also this tutorial how to use prepared statement.

0

精彩评论

暂无评论...
验证码 换一张
取 消