如何在不同的请求中发送 sql-query 的参数?

How to send parameters of an sql-query in a different request?

PostgreSQL 9.4

众所周知,JDBC-PreparedStatement 可以通过在不同于用于发送实际查询正文的查询中发送参数来防止 sql-注入攻击。

如何将这两个查询直接发送到数据库或者 RDBMS 不支持?我的意思是,preparedStatement 是否发挥其内部魔力并在不同的查询中发送查询参数,或者 RDBMSs 原生支持?

prepareStatement不包含不同的参数值,只包含占位符(标有?)

 con.prepareStatement("select cu_id, cu_last_name from customer where cu_id between ? and ?")

占位符(绑定变量)在执行前设置为所需值

 stmt.setInt(1,100)
 stmt.setInt(2,105)

并执行查询

 stmt.executeQuery()

重要的是,数据库可以重用语句进行更多的执行,所以语句不会为每次执行完全解析(但细节取决于DBMS),可以提供更好的性能。 SQL 注入被阻止是因为只提供了参数值——不可能改变 SQL 查询文本。