如果PreparedStatement提高了性能,为什么要使用Statement



根据JDBC文档中对PreparedStatement的解释,我发现与Statement相比,它提高了性能。

那么,为什么我们仍然使用Statement并且它没有被弃用呢?你能解释一下吗。

PreparedStatement在DB服务器端分配一些资源,而simple Statement则不分配。执行单个SQL 时,它可能会导致性能差异

如文档中所述,当多次执行查询时,PreparedStatement通常会执行普通的Statement

表示预编译SQL语句的对象。

SQL语句被预编译并存储在PreparedStatement对象中。然后可以使用此对象多次有效地执行此语句。

这就是PreparedStatement的用途。但并不是所有的事情都与性能有关:当查询中没有变量,所有的东西都是硬编码的,并且要执行一次时,Statement的使用就更简单了。如果您只想运行一次硬编码查询,那么创建一个具有所有潜在好处的准备好的语句是没有意义的。事实上,在这种情况下,如果您使用PreparedStatement,则不会有太大差异,因为执行的方法是相同的,例如Statement#executeQuery(),因为PrepareStatementStatement的子类。

最新更新