我的数据库代码有什么问题?

时间:2015-06-01 06:13:08

标签: java

我正在尝试检查我的String键是否在NETFLIX列中。

public boolean checkSerial(String key){
    boolean isValid = false;
    sql = "Select * from KEYS WHERE NETFLIX=?";
    try{
        ps = con.prepareStatement(sql);
        ps.setString(1, key);
        rs = ps.executeQuery();
        if(rs.next())
            isValid = true;
    }catch(SQLException e){
        System.out.println(e);
    }
    return isValid;
}
  

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个   SQL语法错误;查看与您的手册相对应的手册   MariaDB服务器版本,用于在'KEYS WHERE附近使用正确的语法   第1行的NETFLIX ='IPMAN'

1 个答案:

答案 0 :(得分:9)

KEYS是MySQL保留的关键字。因此,即使查询没有任何问题,您也可能会收到错误。

要么你要避免使用MySQL保留关键字,可以在

找到

https://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

如果您不想更改现有表格,请为关键字使用适当的引号。像,

Select * from `KEYS` WHERE NETFLIX=?

注意:这不是单引号,它是一个符号,与转义符号位于转义符号下方(根据注释称为反引号)。< / p>