gpt4 book ai didi

java.sql.SQLException : Could not set parameter at position 1 (values was 1) using jdbc. queryForObject

转载 作者:行者123 更新时间:2023-11-30 01:47:01 25 4
gpt4 key购买 nike

无法确定导致此异常的主要原因在哪里。我按照 Spring in Action 的书做了一切。这几行代码有什么问题?

private static final String PREFIX_SELECT_SQL = "SELECT ID, " +
"CATEGORY_ID, " +
"STATE_ID, " +
"TASK_DESCRIPTION, " +
"CREATION_TASK_DATE, " +
"START_TASK_DATE, " +
"END_TASK_DATE, " +
"USER_ID FROM tasks ";

public Task findOneTask(int taskId) {
Task task = jdbc.queryForObject(PREFIX_SELECT_SQL
+ "WHERE ID = " + taskId + ";", this::mapRowToTaskTable, taskId);
return task;
}

private Task mapRowToTaskTable(ResultSet resultSet, int i) throws SQLException {
Task task = new Task();

task.setTaskId(resultSet.getInt("ID"));
task.setUserId(resultSet.getInt("USER_ID"));
task.setDescription(resultSet.getString("TASK_DESCRIPTION"));
task.setCategoryId(resultSet.getInt("CATEGORY_ID"));
task.setStateId(resultSet.getInt("STATE_ID"));
task.setStartDate(resultSet.getTimestamp("START_TASK_DATE").toLocalDateTime());
if (resultSet.getTimestamp("END_TASK_DATE") != null) {
task.setEndDate(resultSet.getTimestamp("END_TASK_DATE").toLocalDateTime());
} else {
task.setEndDate(null);
}
task.setCreateDate(resultSet.getTimestamp("CREATION_TASK_DATE").toLocalDateTime());

return task;
}

最佳答案

您已经向 jdbc.queryForObject 查询传递了具体值,但不是参数。

Select ...
from ...
where id = 123

将 findOneTask 更改为:

public Task findOneTask(int taskId) {
Task task = jdbc.queryForObject(PREFIX_SELECT_SQL
+ "WHERE ID = ?;", this::mapRowToTaskTable, taskId);
return task;
}

关于java.sql.SQLException : Could not set parameter at position 1 (values was 1) using jdbc. queryForObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57561711/

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