91 lines
3.4 KiB
Markdown
91 lines
3.4 KiB
Markdown
|
## DriverManager
|
|||
|
|
|||
|
- [DriverManager](#drivermanager)
|
|||
|
- [一、基本信息](#一基本信息)
|
|||
|
- [二、基本描述](#二基本描述)
|
|||
|
- [三、主要功能](#三主要功能)
|
|||
|
- [四、最佳实践](#四最佳实践)
|
|||
|
|
|||
|
### 一、基本信息
|
|||
|
|
|||
|
✒️ **作者** - Lex 📝 **博客** - [掘金](https://juejin.cn/user/4251135018533068/posts) 📚 **源码地址
|
|||
|
** - [github](https://github.com/xuchengsheng/spring-reading)
|
|||
|
|
|||
|
### 二、基本描述
|
|||
|
|
|||
|
`DriverManager` 是 Java 标准库中的一个类,用于管理 JDBC 驱动程序,提供了加载驱动程序和建立数据库连接的静态方法,使得 Java
|
|||
|
应用程序能够方便地与各种数据库进行交互。
|
|||
|
|
|||
|
### 三、主要功能
|
|||
|
|
|||
|
1. **加载数据库驱动程序**
|
|||
|
|
|||
|
+ 通过 `registerDriver()` 方法注册数据库驱动程序,使得 `DriverManager` 能够识别和加载特定数据库的驱动程序。
|
|||
|
|
|||
|
2. **建立数据库连接**
|
|||
|
|
|||
|
+ 通过 `getConnection()` 方法,根据指定的数据库 URL、用户名和密码获取数据库连接对象,以便后续对数据库进行操作。
|
|||
|
|
|||
|
3. **管理数据库连接**
|
|||
|
|
|||
|
+ `DriverManager` 负责管理数据库连接对象,确保连接的安全性和可用性,并提供了方法来获取、关闭数据库连接。
|
|||
|
|
|||
|
4. **卸载驱动程序**
|
|||
|
|
|||
|
+ 通过 `deregisterDriver()` 方法卸载已注册的数据库驱动程序,释放相关资源。
|
|||
|
|
|||
|
### 四、最佳实践
|
|||
|
|
|||
|
使用 `java.sql.DriverManager` 类来连接到 MySQL 数据库,并执行一个简单的查询操作。通过指定数据库连接的
|
|||
|
URL、用户名和密码,它建立了与名为 "spring-reading" 的数据库的连接,然后执行了一个查询语句来获取名为 "scores"
|
|||
|
的表中的数据。最后,它遍历结果集并将每行数据的 "id" 和 "score" 列打印出来,然后关闭了结果集、预处理语句对象和数据库连接。
|
|||
|
|
|||
|
```java
|
|||
|
public class DriverManagerDemo {
|
|||
|
|
|||
|
public static void main(String[] args) throws Exception {
|
|||
|
// 数据库连接 URL,格式为 jdbc:数据库驱动名称://主机地址:端口号/数据库名称
|
|||
|
String url = "jdbc:mysql://localhost:3306/spring-reading";
|
|||
|
// 数据库用户名
|
|||
|
String username = "root";
|
|||
|
// 数据库密码
|
|||
|
String password = "123456";
|
|||
|
|
|||
|
// 建立数据库连接
|
|||
|
Connection connection = DriverManager.getConnection(url, username, password);
|
|||
|
// SQL 查询语句
|
|||
|
String sql = "SELECT * FROM scores";
|
|||
|
// 创建 PreparedStatement 对象,用于执行 SQL 查询
|
|||
|
PreparedStatement statement = connection.prepareStatement(sql);
|
|||
|
// 执行查询,获取结果集
|
|||
|
ResultSet resultSet = statement.executeQuery();
|
|||
|
|
|||
|
// 遍历结果集
|
|||
|
while (resultSet.next()) {
|
|||
|
// 获取 id 列的值
|
|||
|
int id = resultSet.getInt("id");
|
|||
|
// 获取 score 列的值
|
|||
|
String score = resultSet.getString("score");
|
|||
|
// 输出结果
|
|||
|
System.out.println("id: " + id + ", score: " + score);
|
|||
|
}
|
|||
|
// 关闭结果集、PreparedStatement 和数据库连接
|
|||
|
resultSet.close();
|
|||
|
statement.close();
|
|||
|
connection.close();
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
运行结果,从 "spring-reading" 的数据库的 "scores" 表中检索到的数据。每行都包括一个 "id" 和一个 "score" 列。
|
|||
|
|
|||
|
```java
|
|||
|
id:1,score:3.50
|
|||
|
id:2,score:3.65
|
|||
|
id:3,score:4.00
|
|||
|
id:4,score:3.85
|
|||
|
id:5,score:4.00
|
|||
|
id:6,score:3.65
|
|||
|
```
|
|||
|
|