JDBC连接实际上如何工作?

时间:2020-02-23 14:41:27  来源:igfitidea点击:

JDBC Connection接口是java.sql包的一部分。
" java.sql.Connection"接口定义关系数据库供应商的合同。
供应商连接类必须实现这些方法。
Connection的一个实例用于与数据库进行通信。

Connection接口的实现取决于数据库供应商。
因此,只要供应商遵守合同,我们就不必担心实施细节。

如何建立JDBC连接

让我们看一下以下建立JDBC连接的步骤。

1.注册JDBC驱动程序

使用以下方法注册JDBC驱动程序。

Class.forName(String className):此方法用于将JDBC驱动程序类加载到JVM内存中。
字符串参数是Connection实现类的完全分类的名称。

//for MySQL
Class.forName("com.mysql.jdbc.Driver");

//for PostgreSQL
Class.forName("org.postgresql.Driver");

让我们了解幕后发生的事情。
使用此语法如何注册JDBC驱动程序。

首先,JDBC驱动程序的jar文件包含在Java应用程序的类路径中。
DriverManager类使用服务提供者机制来搜索具有名为java.sql.Driver的文件的jar文件。
该文件必须存在于驱动程序jar的META-INF/services文件夹中。

这是一个简单的文本文件,其中包含实现java.sql.Driver接口的类的全名。
例如,MySQL驱动程序的全名是com.mysql.jdbc.Driver。
对于PostgreSQL驱动程序,它是org.postgresql.Driver。

Jdbc连接实现Jar

将Driver类加载到内存时,将执行其静态初始化块。
调用DriverManager类的静态方法来注册驱动程序。

public class VendorDriver implements java.sql.Driver
{ 
static {
	VendorDriver driver = new VendorDriver();
	DriverManager.registerDriver(driver);
        }
}

Jdbc连接寄存器驱动程序

这会将Driver类的实例注册到DriverManager中。

2.创建JDBC连接

我们可以使用DriverManager.getConnection()方法获得JDBC连接。

Connection conn = DriverManager.getConnection(url, user, password);

让我们了解为获取JDBC连接而传递的参数。

  • url:JDBC URL,用于确定用于给定连接的驱动程序实现。

第一部分指示这是JDBC URL,第二部分指示驱动程序供应商(在本例中为PostgreSQL),第三部分指示带有数据库端口的主机名或者IP地址,最后一部分指示数据库名称。

  • 用户:我们获得连接的数据库的用户。

  • 密码:访问给定数据库的密码。

JDBC连接示例

让我们看下面的示例程序。
在下面的程序中,我使用了PostgreSQL数据库,因此我在PostgreSQL中使用了相应的jar。

jdbc:postgresql://hostname:port/databasename

jdbc:postgresql://127.0.0.1:5432/javadb