【问题标题】:Why we require Statement in java.sql.* package为什么我们需要 java.sql.* 包中的语句
【发布时间】:2013-03-10 10:20:59
【问题描述】:

一个普遍的问题,但我无法找到答案:如果 PreparedStatement 甚至可以运行静态 sql,为什么我们需要 java.sql 中的语句。*

编辑: 谢谢垫子

但我担心的是为什么人们会使用 Statement 而不是使用 PreparedStatement,换句话说,Statement 取代 PreparedStatement

注意:我的理解是- 静态查询可以使用Statement,也可以不频繁触发,而不是PreparedStatement,它用于频繁查询的情况(原因:由于预编译SQL而导致性能)

【问题讨论】:

  • 你有没有注意到 PreparedStatement 扩展了语句,而这不是唯一扩展它的语句?

标签: jdbc


【解决方案1】:

一般来说,当您的代码中有相同的查询时,PreparedStatement 会有更好的性能,因为它会缓存查询。

但是如果在你的应用程序中,如果相同查询的频率非常少,那么preparedstatement 不会提高任何性能。这里你应该使用语句,这是你基于 jdbc 的开发代码库的主要选择。

【讨论】:

  • 感谢您的回复,但您怎么说:Statement 是您基于 jdbc 的开发代码库的首选。问这个,因为这将帮助我自己找到这类问题的答案(希望你不要说 oracle docs/google search)
  • 因为对于 JDBC 使用的默认选择是 Statement。当我们使用存储过程时,我们不会使用 callablestatement,当我们有机会保存查询的执行计划并将结果提供给用户而不需要进一步的执行计划时,我们将使用preparedstatement。只有整个查询语句与前一个相同,才会发生这种情况。但这在某些情况下会发生在应用程序中。在大多数情况下,我们使用语句作为默认情况,因为大多数情况下的查询是不同的。
猜你喜欢
  • 2011-02-12
  • 1970-01-01
  • 2012-07-18
  • 1970-01-01
  • 2020-03-23
  • 2019-06-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多