java.sql.Connection接口的实现在哪里?

mal*_*yeb 4 java jdbc

我正在使用java.sql包中的Interface Connection

实际上我虽然它是一个类,但当我试图查看源代码时,我发现它是一个接口.

在Connection接口的源代码中,每个方法只有一行,没有任何实现!

是什么让这个界面像它一样工作?

要连接的数据库:MySql

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

das*_*ght 11

它不是"工作"的接口,而是其实现之一,特定于您的特定RDBMS供应商.实际上,通常是供应商提供Connection接口的实现.

你打电话的时候

Connection conn = DriverManager.getConnection(
    "jdbc:jdbc:mysql://localhost:3306/
,    connectionProps);
Run Code Online (Sandbox Code Playgroud)

驱动程序管理器搜索已注册的JDBC驱动程序,找到一个用于MySQL(它从连接字符串知道它的MySQL),将连接属性传递给实现的MySQL JDBC驱动程序中的类的构造函数Connection,并将结果Connection实例返回给您.例如,驾驶员可能会返回一个包私有类的实例MySqlConnection实现Connection,你的程序将使用它来与RDBMS交互,无需了解类的,比它实现了事实上的其他任何细节Connection.

  • DriverManager 不知道哪个是 MySQL 驱动程序,它会简单地查询每个注册的驱动程序并询问该驱动程序是否接受 URL(使用 `acceptsURL`),第一个在该查询上返回 true 的将被要求创建连接。 (2认同)