一尘不染

何时在准备好的声明上使用声明?

java

何时使用语句而不是准备语句。我想在没有参数的查询中使用语句,但是为什么不使用预处理语句呢?对于没有参数的查询,哪一个更快。


阅读 253

收藏
2020-12-03

共1个答案

一尘不染

我想在没有参数的查询中使用语句,但是为什么不使用预处理语句呢?

还差得远
对于返回结果集或更新计数的INSERT,UPDATE和DELETE语句,使用PreparedStatement。正如Joachim所指出的,它们不适用于DDL语句,也不适用于应使用CallableStatement的存储过程的调用(这在两个类之间没有区别)。就没有绑定参数的查询而言,PreparedStatements可能比Statements更好(请参见下文)。

对于没有参数的查询,哪一个更快。

从长远来看,PreparedStatement会比单个连接中的扩展使用更快。这是因为,尽管必须编译PreparedStatements,这会花费一些时间(这确实不多,所以不要认为这是一个缺点),但是编译后的版本实质上在SQL
Server中保留了对SQL执行计划的引用。数据库。编译后,PreparedStatement将存储在特定于连接的缓存中,以便可以重新使用编译后的版本以提高性能。如果使用的是JDBC批处理操作,则使用PreparedStatements将使批处理的执行比使用普通Statement对象要快得多,在这种情况下,如果必须这样做,则必须一次又一次地计划计划。

2020-12-03