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

时间:2015-03-26 17:37:00

标签: java jdbc

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

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

2 个答案:

答案 0 :(得分:1)

正如文档中所提到的,PreparedStatement在执行多次查询时通常优于正常Statement

  

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

     

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

这是PreparedStatement的用途。但并非所有内容都与性能有关:如果查询中没有任何变量,并且所有内容都是硬编码的,并且要执行一次,则Statement只需更简单即可使用。如果您打算仅运行一次硬编码查询,那么在创建具有所有潜在好处的预准备语句时,它没有多大意义。事实上,在这种情况下,如果你使用PreparedStatement,它会有很大不同,因为执行的方法是相同的,例如Statement#executeQuery()因为PrepareStatementStatement的子类。

答案 1 :(得分:1)

PreparedStatement在数据库服务器端分配一些资源,而简单的Statement不分配。执行单个SQL时,它可能会导致性能上的某些差异