Dayne
Dayne

Reputation: 115

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

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 String

Can you help me?

Upvotes: 1

Views: 8883

Answers (1)

BalusC
BalusC

Reputation: 1109132

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.

Upvotes: 4

Related Questions