Low Voon Hao
Low Voon Hao

Reputation: 33

How to convert " ' " to " ` " in java

The syntax that from the java code is not applicable to mysql. The setString() from java will come out with ' and not ` which is not accepted in mysql.

I tried in my localhost to run the code, it really not accepting 'doctor' and only accept ``doctor`.

Below are my code:

PreparedStatement ps = con.prepareStatement("SELECT id FROM ? WHERE id = ?");
ps.setString(1, "doctor");
ps.setInt(2, 123);
ResultSet rs = ps.executeQuery();

and there is an error

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''doctor' WHERE id = 123' at line 1

Upvotes: 1

Views: 74

Answers (1)

Mustahsan
Mustahsan

Reputation: 3862

It's because your code produces following query:

SELECT id FROM 'doctor' WHERE id = 123

As you can see table name is used as a String which is invalid SQL Syntax, so you can either hard code table name and or if you really want it to be dynamic you can achieve it like:

String sql = String.format("SELECT id from %s where id = ?", tblName); 
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, 123);
ResultSet rs = ps.executeQuery();

Upvotes: 2

Related Questions