2
public ResultSet getResourcesById(String id, String type)
{
    try {
        conn = connect();
        selectStatement = "SELECT * FROM " + type + "WHERE ID LIKE ?";
        preparedStatement = conn.prepareStatement(selectStatement);
        preparedStatement.setString(1, "%ba%");
        res = preparedStatement.executeQuery();
        return res;

    } catch (SQLException ex) {
        Logger.getLogger(CatalogDB.class.getName()).log(Level.SEVERE, null, ex);
    }
    return null;
}

大家好。我在我的系统中使用java。我试图输入一个任意字符串,但它一直告诉我这个错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'LIKE '%ba%'' 附近使用正确的语法

有人可以向我解释为什么会出现这个错误,我很确定我正确地遵循了语法。

4

1 回答 1

15

错误不在LIKE. WHERE您刚刚在子句之前错过了一个额外的空格。

selectStatement = "SELECT * FROM " + type + " WHERE ID LIKE ?";
                                             ^  add space here
于 2013-04-04T12:39:59.933 回答