根据PreparedStatement
中对JDBC docs的解释,我发现与Statement
相比,它提高了性能。
那么为什么我们仍然使用Statement并且它不被弃用?你能解释一下吗。
答案 0 :(得分:1)
正如文档中所提到的,PreparedStatement
在执行多次查询时通常优于正常Statement
:
表示预编译SQL语句的对象。
SQL语句已预编译并存储在
PreparedStatement
对象中。然后可以使用此对象多次有效地执行此语句。
这是PreparedStatement
的用途。但并非所有内容都与性能有关:如果查询中没有任何变量,并且所有内容都是硬编码的,并且要执行一次,则Statement
只需更简单即可使用。如果您打算仅运行一次硬编码查询,那么在创建具有所有潜在好处的预准备语句时,它没有多大意义。事实上,在这种情况下,如果你使用PreparedStatement
,它会有很大不同,因为执行的方法是相同的,例如Statement#executeQuery()
因为PrepareStatement
是Statement
的子类。
答案 1 :(得分:1)
PreparedStatement在数据库服务器端分配一些资源,而简单的Statement不分配。执行单个SQL时,它可能会导致性能上的某些差异