我们什么时候应该使用 PreparedStatement 而不是 Statement?

新手上路,请多包涵

我知道使用 PreparedStatement 的优点,它们是

  • 查询由数据库服务器重写和编译
  • 防止SQL注入

但我想知道我们什么时候使用它而不是 Statement

原文由 Johanna 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 422
1 个回答
  1. > 查询由数据库服务器重写和编译

如果您不使用准备好的语句,数据库服务器将不得不在您每次运行该语句时解析并计算该语句的执行计划。如果您发现您将多次运行相同的语句(使用不同的参数),那么准备一次语句并重用该准备好的语句是值得的。如果您正在临时查询数据库,那么这样做可能没什么好处。

  1. > 防止 SQL 注入

这是您几乎总是想要的优势,因此有充分的理由每次都使用 PreparedStatement 。这是必须参数化查询的结果,但它确实使运行它更安全。我唯一能想到的是,如果您允许临时数据库查询,这将没有用;如果您正在对应用程序进行原型设计并且它对您来说更快,或者如果查询不包含任何参数,则您可以简单地使用 Statement 对象。

原文由 Martin Booth 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题