Ошибка при создании запроса SQL с переменными связывания - JDBCTemplate в Spring - PullRequest
0 голосов
/ 04 июля 2019

Я очень новичок в весне - JDBC. Я пытаюсь получить employee_id из таблицы, используя запрос с переменными связывания, а также с условием IN в нем.

Я получаю SQLE за исключением того, что

«неверный тип столбца» - вызвано: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; неквалифицированное SQLException для SQL [выбрать employee_id из table_employee где age =: varTwo и помечает в (: varOne) и name =: varThree]; Состояние SQL [99999]; код ошибки [17004]; Неверный тип столбца; Вложенным исключением является java.sql.SQLException: Неверный тип столбца

Подскажите, пожалуйста, где я не прав.

Я пытался использовать типы как Long, Integer, String, но все еще получаю «недопустимый тип столбца»

возраст - НОМЕР

отметок - НОМЕР

зовут - VARCHAR

MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("varOne", varOne);
parameters.addValue("varTwo", Long.parseLong(varTwo));
parameters.addValue("varThree", varThree);
Long employeeId = jdbcTemplate.queryForObject("select employee_id from table_employee where age=:varTwo and marks in (:varOne) and name =:varThree" , Long.class , parameters);

Я должен получить результат этого SQL как «идентификатор сотрудника».

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Спасибо за ваши ответы.Я смог продолжить, сделав список строк, используя метод соединения.

0 голосов
/ 04 июля 2019

Я думаю, типом varOne может быть Collection.Если вы хотите использовать переменную в запросе SQL, особенно с IN, убедитесь, что переменная имеет правильный тип.

...