Java 数据库连接

您了解 SQL 的基础知识。这很好。但今天你会感觉更好。今天,您将开始学习如何通过 Java 应用程序使用数据库。

有许多不同的 DBMS,因此 Java 的创建者决定标准化 Java 应用程序与数据库的工作方式。他们称这个标准为JDBC:Java DataBase Connectivity

JDBC 有 3 个主要接口:

  • Connection——负责连接数据库
  • Statement——负责查询数据库
  • ResultSet——负责向数据库查询的结果

事实上,仅此而已。而且我们甚至不会学习所有接口的所有方法。只有工作示例,我们会逐渐复杂化。

JDBC 有点类似于使用 servlet。JDBC 的创建者编写了多个接口,并自豪地称其为 Java DataBase API。这些接口的实现被分配给...... DBMS 的创建者。它是如何在那里实施的-没人关心。工作正常。

JDBC 有四个版本,我们将查看最新版本。不是因为她是最酷的,而是因为她是最简单的。

JDBC 驱动程序管理器

Java 应用程序和数据库通过称为 JDBC 驱动程序的库相互通信。这是一组为特定 DBMS 实现 JDBC API 的类。

使用名为DriverManager 的类选择正确的 JDBC 驱动程序。它们的相互作用可以表示如下:

问题是,您可以使用 In-Memory-DB、No-SQL-DB,甚至是内置于 Android 应用程序中的数据库。作为 Java 开发人员,您根本不关心这些细微差别。驱动程序管理器将为您选择正确的 JDBC 驱动程序,一切都会像发条一样工作。

顺便问一下,他是怎么做到的?

连接到 MySQL 服务器

还记得通过 MySQL Workbench 连接到本地 SQL 服务器需要什么吗?如果我忘了,那么我提醒你,你需要三样东西:

  • 主持人
  • 登录
  • 密码

登录名和密码一目了然,主机,如果您还记得的话,是服务器所在计算机的名称。如果它位于您的本地计算机上,则需要将 localhost 指定为主机名。如果不是本地的呢?

然后你需要使用... URL。URL 代表统一资源定位器。它可用于指定网络上任何事物的位置:站点、打印机、SQL 服务器。实际上,该 URL 也用于访问本地 SQL 服务器。它看起来像这样:

mysql://localhost:3306/db_scheme
  • mysql是一种服务器协议
  • localhost - 网络上的主机名
  • 3306 - 发出请求的端口
  • db_scheme - 模式名称(数据库名称)

笔记。数据库名称可以省略。但是如果服务器存储了很多数据库模式,那么通常会为它们创建不同的用户和不同的访问权限。如果您登录 SQL Server 的用户没有访问所有数据库的权限,那么您肯定需要指定您有权访问的特定数据库的名称。

在这个 url 的末尾可以有各种参数,编码类型,时区,这些被认为是正在建立的新数据库连接的参数。

此外,该协议可以是复合的。如果与数据库服务器的所有通信都是通过使用 SSH 协议的加密通道进行的,那么 URL 可以这样指定:

ssh:mysql://localhost:3306/db_scheme

协议不一定是外部程序。例如,如果您正在使用一个使用 JNDI 协议的服务器,您可以这样指定它:

jndi:mysql://localhost:3306/db_scheme

如果你想使用 JDBC API 协议工作,那么你需要这样写:

jdbc:mysql://localhost:3306/db_scheme

当您尝试创建数据库连接时,JDBC 驱动程序管理器会解析您的 SQL-db-URL 并根据协议名称确定 JDBC 驱动程序名称。这是一个小技巧。