我知道使用 PreparedStatement
的优点,它们是
- 查询由数据库服务器重写和编译
- 防止SQL注入
但我想知道我们什么时候使用它而不是 Statement
?
原文由 Johanna 发布,翻译遵循 CC BY-SA 4.0 许可协议
我知道使用 PreparedStatement
的优点,它们是
但我想知道我们什么时候使用它而不是 Statement
?
原文由 Johanna 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.4k 阅读
1 回答4.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
如果您不使用准备好的语句,数据库服务器将不得不在您每次运行该语句时解析并计算该语句的执行计划。如果您发现您将多次运行相同的语句(使用不同的参数),那么准备一次语句并重用该准备好的语句是值得的。如果您正在临时查询数据库,那么这样做可能没什么好处。
这是您几乎总是想要的优势,因此有充分的理由每次都使用
PreparedStatement
。这是必须参数化查询的结果,但它确实使运行它更安全。我唯一能想到的是,如果您允许临时数据库查询,这将没有用;如果您正在对应用程序进行原型设计并且它对您来说更快,或者如果查询不包含任何参数,则您可以简单地使用 Statement 对象。