哪里的java.sql.Connection接口的实现? [重复](Where are the

2019-06-26 11:32发布

这个问题已经在这里有一个答案:

  • 接口JDBC-实现 4个回答

我使用来自java.sql包的接口连接

其实我虽然一类,但是当我想看看源代码,我想通了,这是一个接口。

在连接接口的源存在用于没有任何实现每个方法只有单线!!

是什么让这个接口可以作为呢?

数据库连接的:mysql

连接源代码页: http://www.docjar.com/html/api/java/sql/Connection.java.html

Answer 1:

它不是接口,“作品”,但它的实现,这是特定于特定的RDBMS供应商之一。 事实上,它通常是谁提供的实现的供应商Connection接口。

你打电话的时候

Connection conn = DriverManager.getConnection(
    "jdbc:jdbc:mysql://localhost:3306/
,    connectionProps);

通过注册的JDBC驱动驱动程序管理器搜索,找到一个对MySQL(它知道它的MySQL从连接字符串),通过连接属性MySQL JDBC驱动程序里面的类,它实现的构造Connection ,并返回结果Connection实例还给你。 例如,驾驶员可能会返回一个包私有类的实例MySqlConnection实现Connection ,你的程序将使用它来与RDBMS交互,无需了解类的,比它实现的事实以外的任何细节Connection



Answer 2:

MySQL驱动( http://www.mysql.com/products/connector/ )包含实际的执行情况。 java.sql.Connection接口只是定义了JDBC标准预计方法。 每个数据库驱动程序必须定义如何真正连接。



Answer 3:

下面是直接或间接实现java.sql.Connection接口类的一些例子:

  • oracle.jdbc。 的OracleConnection包装
  • com.mysql.jdbc。 ConnectionImpl
  • com.microsoft。 sqlserver.jdbc。 SQLServerConnection

由包命名空间,你可以从他们来自哪个JDBC驱动程序告诉。 但是,这些和其他实现类不能直接使用。 正如dasblinkenlight指出的那样,你应该对编程的JDBC API,而不是每个JDBC驱动程序库中提供的类。 使用API​​将允许你切换RDBMS,而不是破坏你的Java数据访问代码。

有趣的是,这几天越来越少的人使用JDBC API。 很多人使用是建立在JDBC,如Hibernate之上的对象关系映射框架。



文章来源: Where are the implementation of java.sql.Connection interface? [duplicate]
标签: java jdbc