Java SQL参数超出索引错误

Java SQL参数超出索引错误,java,mysql,Java,Mysql,当我试图执行这段代码时,我遇到了这个错误。当我删除问号的引号时,它会说“您的SQL语法有错误 谁能帮我把这个修好吗 String query = "select date from ticket where date >='?' and date <= '?' "; PreparedStatement pstmt1 = con.prepareStatement(query); pstmt1.setString(1, fromdate);

当我试图执行这段代码时,我遇到了这个错误。当我删除问号的引号时,它会说“您的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);

String query=“select date from ticket where date>=”?“和date此处的实际错误是您正在执行查询字符串本身,而不是准备好的语句:

pstmt1.executeQuery(query);
PreparedStatement
接口中没有
executeQuery(String)
,而是从
Statement
接口返回,该接口只是以查询的形式运行字符串。这意味着它将痛苦地抱怨,因为
在该上下文中被视为无效

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


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

不要用引号括住占位符

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

String query=“从票据中选择日期,其中日期>=”?“和日期=”?和datesetString(…)-->setDate(…)

您不引用参数,只需使用
where date>=?我删除引号的日期,它说你的SQL语法有错误,错误是什么?另外,你有没有看到
BETWEEN
子句,例如
WHERE date-BETWEEN?和?
检查与您的MySQL服务器版本对应的手册,以了解使用near'的正确语法?和日期用当前代码更新您的问题。不要键入,复制并粘贴
date
是一个不需要标识符引号的有效列名。见本表下的列表-
String query = "select date from ticket where date >='?' and date <= '?'  ";
String query = "select date from ticket where date >=? and date <= ?  ";