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
|
||
```
|
||
|