我的应用程序根据传入的数据构建动态插入语句。
例如,它动态构建一个插入查询,如:
insert into employees (name, age) values ('Tim', 12)
(我使用sqlbuilder动态生成如上所述的查询。我无法控制哪些列/表构成insert语句 - 它取决于传入的数据。例如,下一个语句可能像:insert into employees (building, salary) values ('Green tower', 9999)
)
我不想这样使用上面的语句,因为它是为sql注入打开的。
我需要将它转换为PreparedStatement,如下所示:
PreparedStatement preparedStatement = dbConnection.prepareStatement(insertSQL);
preparedStatement.setString(1, "Tim");
preparedStatement.setInt(2, 99);
有没有图书馆为我做这件事?
答案 0 :(得分:0)
您的工具不依赖于PreparedStatements,因此无法修复它。你有什么选择:
选择其他工具来构建查询
或确保您的机制免受SQL注入(take a look at ESAPI)