当我尝试执行这段代码时出现此错误。当我删除问号的引号时,它说“您的SQL语法有错误;”。
有人可以帮我解决这个问题吗?

String query = "select date from ticket where date >='?' and date <= '?'  ";

        PreparedStatement pstmt1 =  con.prepareStatement(query);
        pstmt1.setString(1, fromdate);
        pstmt1.setString(2, todate);
        pstmt1.executeQuery(query);

最佳答案

这里的实际错误是您正在执行查询字符串本身,而不是准备的语句:

pstmt1.executeQuery(query);


executeQuery(String)界面中没有PreparedStatement,而是从Statement界面还原为?界面,该界面只是按原样运行字符串作为查询。这意味着它将苦苦抱怨,因为在这种情况下被认为无效。

您应该只使用(包括检索结果集):

ResultSet rs = pstmt1.executeQuery();


因此查询执行是在准备好的语句上下文而不是语句上下文中完成的。

10-04 12:26