Почему Spring SimpleJdbcCall не использует sp_execute sql? - PullRequest
0 голосов
/ 10 июля 2020

Я использую SimpleJdbcCall для выполнения хранимых процедур на SQL сервере, но когда я проверяю журналы отладки, я вижу, что он использует call my_sp_name, но я ожидаю, что моя хранимая процедура будет выполнена с использованием sp_executesql как это предотвращает инъекцию SQL.

Это код, который у меня есть:

simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withReturnValue();
simpleJdbcCall.withProcedureName("my_sp_name");
simpleJdbcCall.addDeclaredParameter(new SqlParameter("paramOne", Types.VARCHAR));
Map<String, Object> params = new HashMap<>();
// setting parameters here
simpleJdbcCall.execute(params);

Я что-то пропустил или мне нужно набрать sp_executesql вручную в коде?

Я использую:

driver class name: com.microsoft.sqlserver.jdbc.SQLServerDriver

Dependency: mssql-jdbc:8.2.2.jre.8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...