【发布时间】:2022-10-20 15:22:50
【问题描述】:
我有以下方法使用NamedParameterJdbcTemplate 在 Spring Boot 中执行 SQL 查询:
@Service
class MyRepository(
val jdbcTemplate: NamedParameterJdbcTemplate
) {
fun loadData(myKey: List<Int>): List<MyRow> {
return jdbcTemplate.query(
"""
select
io.KEY as itemKey,
art.ARTICLE_NR as articleNumber,
art.PRICE as price,
concat(
concat(
concat(art.BEST_B, BEST_A),
lpad(BEST_B, 2, '0')),
lpad(BEST_A, 2, '0')) as group
from
BUY.OPTION io
INNER JOIN BUYING.ART art ON (to_char(art.id) = io.keyb)
where
io.KEY IN (:MYKEY)
""".trimIndent(),
parameters
) { rs, rowNum ->
MyRow(
itemOption = ItemOption(rs.getString("ITEMOPTION")),
articleNumber = rs.getString("ARTICLENUMBER"),
price = rs.getBigDecimal("PRICE")
group = rs.getString("GROUP")
)
}
}
}
由于使用 NamedParameterJdbcTemplate,此方法是否已经针对 SQL 注入进行了保护?还是我必须为此做一些额外的步骤?
【问题讨论】:
标签: sql spring kotlin jdbc spring-jdbc