SELECT*FROM表在JDBC中引发错误

Med*_*edo 2 java jdbc

我正在尝试从表中进行选择,这对我的数据库中的每个其他表都可以正常工作,但是当我尝试以下操作时,我收到一个错误:

db.makeQuery("SELECT * FROM References");
Run Code Online (Sandbox Code Playgroud)

哪个电话:

public ResultSet makeQuery(String query) throws Exception
{
    preparedStatement = connect.prepareStatement(query);
    resultSet = preparedStatement.executeQuery(query);
    return resultSet;

}
Run Code Online (Sandbox Code Playgroud)

然后抛出以下错误:

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 'References' at line 1
Run Code Online (Sandbox Code Playgroud)

我觉得这很奇怪,因为这句话有效:

db.makeQuery("select * from Products");
Run Code Online (Sandbox Code Playgroud)

aio*_*obe 8

References是SQL中的关键字,因此您最好避免使用表名.(例如,参见本文档.)

正如Nishant所建议的那样,如果你用反引号来逃避它们,你可以在查询中使用保留字.

相关问题:


Nis*_*ant 6

使用

 db.makeQuery("SELECT * FROM `References`");
Run Code Online (Sandbox Code Playgroud)

如果你可以,更好的是,避免使用MySQL关键字的名称.正如aioobe所说