Java数据库开发全解析:从JDBC到远程应用
立即解锁
发布时间: 2025-08-18 02:32:40 阅读量: 1 订阅数: 6 

### Java 数据库开发全解析:从 JDBC 到远程应用
#### 1. JDBC 概述
JDBC(Java Database Connectivity)是 Java 核心 API 中的数据库连接包。它为连接关系型数据库、执行 SQL 调用以及接收数据结果提供了独立于数据库的接口。从技术角度看,JDBC 是 X/Open 定义的标准 SQL 调用级接口(CLI)的 Java 实现,且得到了大多数主要关系型数据库厂商的支持。要与特定类型的数据库进行交互,需要有一个 JDBC 驱动,它充当 JDBC 方法调用和原生数据库接口之间的桥梁。
##### 1.1 数据检索示例
以下是一个简单的 JDBC 数据库查询示例,展示了如何打开数据库连接、执行查询并遍历结果:
```java
// Construct the database address
String dbaseURL = "jdbc:mysubprotocol://dbasehost/dbasename";
// Make the database connection
Connection dbConnection =
DriverManager.getConnection(dbaseURL, "dbaseuser", "dbasepasswd");
// Create a statement and execute the SQL query
Statement query = dbConnection.getStatement();
ResultSet results =
query.executeQuery("SELECT first_name, last_name from user_table");
// Iterate through the results and print them to standard output
while (results.next()) {
String fname = results.getString("first_name");
String lname = results.getString("last_name");
System.out.println("Found user \"" + fname + " " + lname + "\"");
}
```
操作步骤如下:
1. 构建数据库地址,使用类似 URL 的字符串表示。
2. 通过 `DriverManager.getConnection()` 方法传入数据库地址、用户名和密码,建立数据库连接。
3. 创建 `Statement` 对象,用于执行 SQL 查询。
4. 执行查询,结果以 `ResultSet` 对象返回。
5. 遍历 `ResultSet` 对象,获取并输出查询结果。
##### 1.2 JDBC API 概览
JDBC API 提供了反映关系型数据库基本概念的接口,这些接口都属于 `java.sql` 包,主要包括 `DriverManager`、`Connection`、`Statement` 和 `ResultSet`。
- **DriverManager**:负责将数据库驱动加载到 Java 应用程序或小应用程序中,是 JDBC 建立数据库连接的主要方式。Java 应用程序先创建 `DriverManager` 实例,然后调用其静态 `getConnection()` 方法,传入类似 URL 的数据库引用,`DriverManager` 会搜索可用驱动,找到合适的驱动后将数据库地址传递给它并要求创建连接,连接以 `Connection` 对象形式返回。
- 所有 JDBC 驱动都实现了 `java.sql.Driver` 接口。创建 `DriverManager` 时,它会尝试加载由 `sql.Driver` 的 Java 属性指定的一组驱动。也可以使用 `Class.forName()` 方法显式加载额外的驱动,例如:
```java
Driver myDriver = (Driver)Class.forName("specialdb.Driver");
```
- **Connection**:在 `DriverManager` 加载必要的驱动后,可通过 `DriverManager` 类的 `getConnection()` 方法建立与数据库的连接。数据库地址以类似 URL 的字符串指定,没有标准格式,`DriverManager` 会将其依次传递给每个加载的 JDBC 驱动,询问是否理解并支持该类型的数据库。
- 例如,使用 ODBC 协议建立数据库连接的 JDBC 驱动通常使用以下形式的地址:
```plaintext
jdbc:odbc:financedata
```
- 从本地客户端访问远程数据库可能使用不同形式的地址:
```plaintext
jdbc:drvr://dataserver.foobar.com:500/financedata
```
- JDBC API 规范建议数据库 URL 采用以下形式:
```plaintext
jdbc:<sub−protocol>:<sub−name>
```
- 其中 `<sub−protocol>` 指定数据库连接服务,`<sub−name>` 提供底层服务查找和连接数据库所需的所有信息。
- **Statement**:`Connection` 接口允许用户创建数据库查询语句,查询语句由 `Statement` 对象或其子类表示。`Connection` 接口提供了三种创建数据库查询语句的方法:
- `createStatement()`:用于不涉及任何参数的简单 SQL 语句,返回的 `Statement` 对象可使用 `executeQuery()` 方法执行 SQL 查询,结果以 `ResultSet` 对象返回。
- `prepareStatement()`:用于涉及输入参数或需要多次执行的 SQL 语句,返回 `PreparedStatement` 对象。传入该方法的 SQL 语句会被预编译,多次执行更高效,可通过一系列 `setXXX()` 方法设置预编译输入参数的值。
- `prepareCall()`:用于访问存储在数据库中的 SQL 存储过程,返回 `CallableStatement` 对象,可设置输入参数并获取输出参数。
- 默认情况下,JDBC 包会自动提交通过 `Connection` 发出的每个 `Statement`。如果需要进行事务回滚或将多
0
0
复制全文
相关推荐










