我正在尝试使用mysql 5.5到jdbc代码的in参数进行简单查询

时间:2014-04-01 07:31:29

标签: mysql jdbc

String sql="select * from matrix where metric_name in(?)";
PreparedStatement st1 = conn.prepareStatement(sql);
st1.setString(1,"NO_OF_ORDERS");
resultSet = st1.executeQuery(sql);
 while (resultSet.next()) {
}

相同的查询可以正常使用mysql 5.7,但我无法找到问题。 如何从jdbc

传递mysql 5.5中的参数

错误是: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在第1行的“?)”附近使用正确的语法

1 个答案:

答案 0 :(得分:0)

您不应在executeQuery(String)上致电PreparedStatement,而应致电executeQuery()。这是JDBC api明确禁止的,但只是出错(由于语法错误)MySQL Connector / J。

请注意,您当前的查询相当于:

select * from matrix where metric_name = ?

我没有看到你在这里使用IN的原因。