SELECT * FROM表在JDBC中引发错误

时间:2012-07-05 12:09:04

标签: java jdbc

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

db.makeQuery("SELECT * FROM References");

哪个电话:

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

}

然后抛出以下错误:

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

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

db.makeQuery("select * from Products");

3 个答案:

答案 0 :(得分:8)

References是SQL中的关键字,因此您最好避免使用表名。 (例如参见this documentation。)

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

相关问题:

答案 1 :(得分:6)

使用

 db.makeQuery("SELECT * FROM `References`");

如果可以,最好避免使用MySQL关键字的名称。正如aioobe

所建议的那样

答案 2 :(得分:0)

您可能会错误拼写表格的名称。当MySQL无法找到您所指的那个表时,会发出此错误。

使用SHOW TABLES;查看数据库中表格的名称,并仔细检查名称。