gpt4 book ai didi

java - mysql 之间和通过 JDBC preparedstatement 使用 - 获取参数索引超出范围异常

转载 作者:太空宇宙 更新时间:2023-11-03 10:35:52 25 4
gpt4 key购买 nike

从 select 查询中参数化了值(带有 BETWEEN 和 AND 的日期值)

我的问题

SELECT COUNT(*) AS assignedtotalcount FROM ticket, ticket_data
WHERE ticket.`ticket_id` = ticket_data.`ticket_id`
AND ticket.`created` BETWEEN '?' AND '?'

从上面的查询参数化了 BETWEEN , AND 中的值

Java代码

static String dateFrom = "2018-01-01";
static String dateTo = "2018-01-31";
String query = reportQuery.toString();
statement = connection.createStatement();
preparedStatement = connection.prepareStatement(query);
preparedStatement.setString(1, dateFrom);
preparedStatement.setString(2, dateTo);
resultSet = preparedStatement.executeQuery(query);

执行时出现以下异常

java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).

请帮我解决

最佳答案

不要引用占位符。您需要将 '?' 更改为 ?

所以查询变成这样

SELECT COUNT(*) AS assignedtotalcount FROM ticket, ticket_data
WHERE ticket.`ticket_id` = ticket_data.`ticket_id`
AND ticket.`created` BETWEEN ? AND ?

关于java - mysql 之间和通过 JDBC preparedstatement 使用 - 获取参数索引超出范围异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48583008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com