我在JDBC中使用Statement和PreparedStatement之间的差异,并且与Statement相比,在PreparedStatement中看到了许多优势here和here。
我的一些同事问我们为什么仍然需要声明,以及为什么不看待PreparedStatement的优势。
那么我们还有什么理由在JDBC API中使用Statement吗?
答案 0 :(得分:2)
PreparedStatement
用于处理动态SQL查询,其中Statement
用于处理静态SQL查询。
答案 1 :(得分:0)
那么我们还有什么理由在JDBC API中使用Statement吗?
是的,因为它位于SQL客户端 - 服务器API中。如果要删除未准备好的语句,那么JDBC中将缺少SQL的一个特性。
如其他答案中所提到的,如果没有动态参数,PreparedStatement没有任何优势。对于这些情况,使用未准备好的声明会稍微简洁一些。
完全不受这些问题影响的事实是PreparedStatement是Statement的Suber接口,因此如果不重新设计API就不能删除后者。这更多地与Java API有关,而与SQL无关。