【发布时间】:2016-11-16 08:46:25
【问题描述】:
我有一个这样的 SQL 查询:
StringBuilder sSelect = new StringBuilder("SELECT C ");
StringBuilder sFrom = new StringBuilder(" FROM CUSTOMER as C ");
if (phoneNumber != null)
{
sFrom.append(" where C.number = ").append(phoneNumber);
}
我想要一个防止 SQL 注入的解决方案。像这样的东西很好用:
sWhere.append(" I.indicNom=").append(":sPhoneNumber").append(" ");
parameters.put("sPhoneNumber", phoneNumber);
我的目的是使用preparedStatement。是否可以逐步创建 SQL?
例如:
select * from tableX if(condition) {add where X=:Y } else {do nothing}
而不是
select * from tableX where X=?
【问题讨论】:
-
你用的是什么SQL引擎,会和答案相关。
-
@ScottChamberlain 我正在使用持久性 jdbc
标签: prepared-statement sql-injection