JdbcTemplate IN子句SQL注入安全,无需使用namedparameterjdbctemplate吗?

时间:2018-12-03 15:05:57

标签: java spring spring-boot spring-security jdbctemplate

请推荐如何在JdbcTemplate上写安全查询

我已经使用以下函数来获取列ID值的结果。请帮我。我不想使用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);
}

谢谢。

0 个答案:

没有答案