Java学习第五十部分——Web开发(十八)

目录

一. 关键概述

二. 基础架构

三. 工作流程

四. 核心组件

五. 应用价值

六. 局限因素

七. 使用场景

八. 驱动类型

九. 使用步骤——MySQL 为例

1. 添加驱动依赖

2. 基础代码流程

十. 常见数据库驱动类名

十一. 一句话总结


一. 关键概述

       JDBC(Java Database Connectivity)是 Java 数据库连接的标准 API,它提供了一组用于连接和操作关系型数据库的 Java 接口。JDBC 允许 Java 应用程序与各种数据库进行交互,而不需要针对特定数据库编写专用代码。

二. 基础架构

    A[Java Application] --> B[JDBC API]
    B --> C[JDBC Driver Manager]
    C --> D[JDBC Driver]
    D --> E[Database]

  1. Java Application:Java应用程序,使用 JDBC API 的代码

  2. JDBC APIjava.sql 和 javax.sql 包中的接口

  3. JDBC Driver Manager:管理数据库驱动程序

  4. JDBC Driver:jdbc驱动,数据库厂商提供的具体实现

  5. Datebase:数据库,实际的数据存储系统

三. 工作流程

    participant App as Java 应用
    participant DM as DriverManager
    participant Driver as JDBC 驱动
    participant DB as 数据库

    App->>DM: 加载驱动
    DM->>Driver: 注册驱动
    App->>DM: 获取连接
    DM->>Driver: 创建连接
    Driver->>DB: 建立物理连接
    DB-->>Driver: 返回连接
    Driver-->>DM: 返回 Connection
    DM-->>App: 返回 Connection
    App->>Connection: 创建 Statement
    Connection-->>App: 返回 Statement
    App->>Statement: 执行 SQL
    Statement->>DB: 发送 SQL
    DB-->>Statement: 返回结果
    Statement-->>App: 返回 ResultSet
    App->>ResultSet: 处理数据
    App->>Connection: 关闭连接

四. 核心组件

组件描述主要功能
DriverManager管理 JDBC 驱动程序加载驱动程序,创建数据库连接
Connection数据库连接对象创建语句,管理事务
StatementSQL 语句执行器执行静态 SQL 语句
PreparedStatement预编译语句执行器执行带参数的 SQL,防止 SQL 注入
CallableStatement存储过程执行器调用数据库存储过程
ResultSet结果集对象存储和遍历查询结果

五. 应用价值

  1. 数据库无关性:使用相同的 API 访问不同数据库(MySQL, Oracle, PostgreSQL 等)

  2. 标准化接口:统一了数据库访问方式

  3. 简化开发:减少数据库操作的复杂性

  4. 跨平台能力:与 Java 的"一次编写,到处运行"理念一致

六. 局限因素

  1. 需要编写大量样板代码

  2. 需要手动处理资源管理和异常

  3. SQL 与 Java 代码混合,维护成本高

  4. 缺乏对象关系映射支持

七. 使用场景

  1. 企业级应用数据持久化

  2. Web 应用程序后端数据库操作

  3. 数据迁移和ETL工具

  4. 报表生成系统

  5. 任何需要关系型数据库存储的Java应用

八. 驱动类型

  1. Type 1: JDBC-ODBC 桥接驱动 (已过时)

  2. Type 2: 本地 API 驱动 (部分 Java,部分本地代码)

  3. Type 3: 网络协议驱动 (纯 Java,中间件架构)

  4. Type 4: 原生协议驱动 (纯 Java,直接与数据库通信) - 最常用

九. 使用步骤——MySQL 为例

1. 添加驱动依赖

Maven 配置(pom.xml):

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
</dependency>

2. 基础代码流程

import java.sql.*;

public class JdbcDemo {
    public static void main(String[] args) {
        // 1. 加载驱动 (JDBC 4.0+ 可自动加载)
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        // 2. 建立连接 (try-with-resources 自动关闭资源)
        String url = "jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC";
        String user = "root";
        String password = "123456";

        try (Connection conn = DriverManager.getConnection(url, user, password);
             // 3. 创建 PreparedStatement (防 SQL 注入)
             PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE id = ?")) {
            
            // 4. 设置参数并执行查询
            pstmt.setInt(1, 1001);
            try (ResultSet rs = pstmt.executeQuery()) {
                
                // 5. 处理结果集
                while (rs.next()) {
                    String name = rs.getString("name");
                    int age = rs.getInt("age");
                    System.out.println(name + ", " + age);
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

十. 常见数据库驱动类名

| 数据库   | 驱动类名                          |
|----------|-----------------------------------|
| MySQL    | `com.mysql.cj.jdbc.Driver`        |
| Oracle   | `oracle.jdbc.driver.OracleDriver` |
| PostgreSQL| `org.postgresql.Driver`           |
| SQL Server| `com.microsoft.sqlserver.jdbc.SQLServerDriver` |

十一. 一句话总结

       通过 JDBC,Java 应用可以无缝与各种数据库交互。实际开发中,通常会结合 ORM 框架(如 Hibernate、MyBatis)简化操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值