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