我刚刚发现我们的代码中有些地方使用Prepared Statement,即使我们总是处理向表中插入一行。
我想知道在插入一行时是否使用Prepared Statement会产生一些值得修改此代码以使用Statement的开销。
答案 0 :(得分:2)
在安全方面,Prepared Statements
特别用于防止SQL注入攻击。关于效率,它在很大程度上取决于您正在处理的声明的性质。您可能还会发现另一个有趣的答案:
答案 1 :(得分:2)
当您使用PreparedStement时,不仅您的查询执行速度更快,还有其他优势。
要记住的重要一点是永远不要构造SQL语句 使用未经检查的输入值的字符串连接。创造 通过java.sql.Statement类进行动态查询会导致SQL 注射。
答案 2 :(得分:1)
PreparedStatement
可以对一个简单的Statement
进行预处理,因为它可以抵御一些针对SQL注入的安全性。
在PreparedStatement
中,检查每个参数的类型并自动转义。这意味着使用String
插入'
与PreparedStatement
一起保存,而在不使用PreparedStatement
时必须自行转义特殊字符。
此外,您无法在预期String
的位置插入一些Number
。
答案 3 :(得分:0)
如果你的代码只插入一行,它可能会多次调用,在这种情况下PreparedStatement
应该更快。对于Statement
,它还需要在执行之前进行编译,因此它几乎不会更快