String select = "select script from kit where (name = ?) and (creator = ?)";
PreparedStatement prepared = db.prepareStatement(select);
prepared.setString(1, name);
prepared.setInt(2, creator);
ResultSet result = prepared.executeQuery(select);
给我一个“您的SQL语法错误”
您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以在第1行的'?)和(creator =?)'附近使用正确的语法
这是怎么回事?我该如何解决?
答案 0 :(得分:0)
我的猜测是JDBC或您的基础数据库不喜欢括号中WHERE
子句中的术语。尝试删除它们:
String select = "select script from kit where name = ? and creator = ?";
PreparedStatement prepared = db.prepareStatement(select);
prepared.setString(1, name);
prepared.setInt(2, creator);
ResultSet result = prepared.executeQuery();
还要注意,PreparedStatement#executeQuery()
没有任何参数。由于已经准备好语句并绑定了参数,因此只需要执行该查询即可。
令我感到惊讶的是,MySQL正在抱怨这一点,因为从我在本地进行的测试来看,您的当前查询应该没有任何问题地执行。