JDBC中使用的java中**Connection接口**的**prepareStatement**的实现在哪里?

Posted

技术标签:

【中文标题】JDBC中使用的java中**Connection接口**的**prepareStatement**的实现在哪里?【英文标题】:Where is the implementation of **prepareStatement** of **Connection interface** in java used in JDBC? 【发布时间】:2014-09-26 17:33:58 【问题描述】:

Connection interface在java中prepareStatement在JDBC中的实现在哪里?

String sql = "update people set firstname=? , lastname=? where id=?";

PreparedStatement preparedStatement = connection.prepareStatement(sql);

我找不到连接接口的实现,我们直接调用连接接口的方法,但必须有实现连接接口的类。如果没有实现连接接口的类,那么它是如何工作的?

谁能解释一下?

【问题讨论】:

每个数据库都有自己的jdbc驱动,这个驱动有实现 其实Connection接口并不局限于任何特定的数据库厂商,它适用于所有数据库,那么驱动如何提供实现。 在我看来您并不真正了解接口的工作原理...... 【参考方案1】:

...我们直接调用Connection接口的方法,但必须有实现Connection接口的类。

是的,你完全正确。 Connection 接口由 JDBC 提供程序库实现,而不是在 JDK 本身中实现,因为它特定于您正在使用的 RDBMS。所以有一个 mysql Connection 实现,一个 SQL Server 实现,等等。您通常从 Driver(直接或间接)获得 Connection,您从 DriverManager(直接或间接)获得,您从您的 RDBMS 的 JDBC 驱动程序 jar 加载。

【讨论】:

谢谢!!这取决于 JDBC 提供程序。

以上是关于JDBC中使用的java中**Connection接口**的**prepareStatement**的实现在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

java.sql.SQLFeatureNotSupportedException:方法 org.postgresql.jdbc4.Jdbc4Connection.isValid(int) 尚未实现。在

java链接MySQL数据库时使用com.mysql.jdbc.Connection的包会出红线问题

传递 jdbc 数据源与传递 Connection 对象 - 从 servlet 到 java 类

类型不匹配:无法从 java.sql.Connection 转换为 com.mysql.jdbc.Connection

Java数据库编程(JDBC)

com.microsoft.sqlserver.jdbc.SQLServerConnection 和 java.sql.Connection 有啥区别