当我尝试执行这段代码时出现此错误。当我删除问号的引号时,它说“您的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();
因此查询执行是在准备好的语句上下文而不是语句上下文中完成的。