Предложение JdbcTemplate IN SQL-инъекция безопасна без использования namedparameterjdbctemplate? - PullRequest
0 голосов
/ 03 декабря 2018

Пожалуйста, порекомендуйте, как писать безопасные запросы на JdbcTemplate

Я использовал эту следующую функцию, чтобы получить результат значений идентификатора столбца.Пожалуйста помоги мне с этим.Я не хочу использовать namedparameterjdbctemplate для получения результата.

private String getColumnValues(String colString) {
    List data = new ArrayList();
    colString = colString.trim().toLowerCase();
    List<String> nameRecordIDs = new ArrayList<String>(); 
    System.out.println(colString);
    String[] arrayString = colString.split(",");
    for(int i = 0; i< arrayString.length; i++){
        nameRecordIDs.add(arrayString[i].trim());
    }
    String query = "SELECT colId FROM tableName1 WHERE LOWER(colName) IN (:colInValue)";
    Map namedParameters = Collections.singletonMap("colInValue", nameRecordIDs);
    List<Map<String, Object>> rows = jdbcTemplate.queryForList(query, namedParameters);
    for (Map row : rows) {
        data.add((String) row.get("colId"));
    }
    return String.join(",", data);
}

Заранее спасибо.

...