繁体   English   中英

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

[英]mysql between and used via JDBC preparedstatement - getting Parameter index out of range exception

从选择查询中参数化该值(日期值为BETWEEN,AND)

我的查询

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

从上述查询中参数化了BETWEEN和中的值

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 ?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM