我在研究JDBC中Statement和PreparedStatement的区别时,发现PreparedStatement相比Statement有很多优点,可以在这里和这里看到。我的一些同事问为什么我们还需要Statement,为什么它没有被弃用,因为PreparedStatement有这么多优点。那么,为什么JDBC API仍然保留Statement呢?
那么,我们在JDBC API中仍然保留Statement是否有任何原因?是的,因为它在SQL客户端-服务器API中。如果要删除非预处理语句,则JDBC中的SQL功能将丢失。正如其他答案所提到的,如果没有动态参数,PreparedStatement就没有任何优势。对于这些情况,使用非预处理语句略微更简洁。与这些问题完全无关的事实是,PreparedStatement是Statement的子接口,因此后者不能被删除而不重新设计API。这更多地与Java API有关,而不是与SQL有关。
PreparedStatement
是Statement
接口的一个实现。你的问题不清楚... - Nir Alfasi