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
com.microsoft.sqlserver.jdbc.SQLServerConnection 和 java.sql.Connection 有啥区别