JDBC查询出错

时间:2011-01-23 07:15:44

标签: java sql jdbc

sql  = "select milk_rate from special_milk_rate 
        where code_producer_id=? and effective_from <= ? 
        and effective_till >= ?"

在我的JDBC代码

中,我在此查询中收到错误
  

异常:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在'附近使用正确的语法?和effective_from&lt; =?和effective_till&gt; =?'在第1行

但是当我在MySQL命令提示符下使用某些值运行它时,它在那里运行良好。

2 个答案:

答案 0 :(得分:1)

ResultSet rst= prest.executeQuery(sql);

这是不正确的。它应该是executeQuery()。

使用Statement时,sql被传递给执行。当使用绑定变量时,它会被传递给PreparedStatement。由于您使用的是Statement API,因此JDBC正在执行它而不会替换您的绑定变量并想知道如何处理文字问号。

答案 1 :(得分:0)

您必须使用预准备语句而不是“普通”语句才能将问号替换为参数。