你能解释一下 jdbcTemplate 方法 preparedStatementCallBack 和 preparedStatementSetter 之间的区别以避免 sql 注入吗?

Can you explain the difference between jdbcTemplate methods preparedStatementCallBack and preparedStatementSetter to avoid sql Injection?

我想避免 sql 在我的 application.There 中注入两个 jdbcTemplate 方法,例如

public <T> T execute(String sql,PreparedStatementCallback<T> action)throws DataAccessException

public <T> T query(String sql,@Nullable,PreparedStatementSetter pss,ResultSetExtractor<T> rse)
throws DataAccessException

您可以建议的任何其他方法来避免 sql 注入。 提前致谢。

TL;DR

Execute 方法允许您在一条语句中执行任意数据访问操作。

Query 方法允许您使用准备好的语句发送查询。

对于 documentation 中的这些方法和所有其他方法,有一些方法可以处理相同的情况。开发人员可以选择最适合他们工作的那些。

作为建议,我建议使用一些模式,例如检索数据的查询方法,以及插入、更新或删除数据的 update 方法。