白骑士的Java教学数据库编程篇 9.1 JDBC基础

65 篇文章 0 订阅

        在现代软件开发中,数据库的使用非常广泛,几乎所有的应用程序都需要与数据库进行交互。Java Database Connectivity (JDBC) 是Java语言中用来执行SQL语句的标准API,JDBC使得开发人员可以在Java程序中与数据库进行交互。通过学习JDBC,你将能够在Java应用程序中实现数据的增删改查等操作。本篇博客将带你深入了解JDBC的基础知识,包括其架构、驱动、常用类和接口,以及如何使用JDBC连接数据库并执行SQL操作。

JDBC概述

        JDBC是Java语言中用来执行SQL语句的标准API。它提供了一组接口,能够与不同类型的数据库进行交互。JDBC的主要目的是为了让开发人员能够在Java程序中使用统一的方式来访问数据库,不管底层使用的是哪种数据库系统。

JDBC架构

        JDBC架构主要由四个部分组成:

  • JDBC API:Java应用程序通过JDBC API与数据库进行交互。JDBC API包含一组接口和类,这些接口和类定义了与数据库进行交互的标准方法。
  • JDBC Driver Manager:JDBC Driver Manager是一个管理不同JDBC驱动的类。它能够加载数据库驱动并管理驱动与数据库之间的连接。
  • JDBC Driver:JDBC Driver是一个实现了JDBC API的接口的类库,它能够将JDBC API的调用转换为数据库特定的调用。
  • 数据库:实际存储数据的数据库系统。

JDBC驱动类型

        JDBC驱动有四种类型:

  • 类型1驱动(JDBC-ODBC桥接驱动):通过ODBC驱动与数据库进行交互。
  • 类型2驱动(本地API驱动):通过本地数据库API与数据库进行交互。
  • 类型3驱动(网络协议驱动):通过中间服务器将JDBC调用转换为数据库特定的调用。
  • 类型4驱动(纯Java驱动):直接将JDBC调用转换为数据库特定的调用,不依赖于任何中间层。

常用JDBC类和接口

        JDBC API提供了一组常用的类和接口,用于与数据库进行交互:

  • DriverManager:管理一组JDBC驱动程序的基本服务,用于建立与数据库的连接。
  • Connection:表示与特定数据库的连接会话,用于发送SQL语句和接收结果。
  • Statement:用于执行静态SQL语句并返回它生成的结果。
  • PreparedStatement:预编译的SQL语句对象,提高性能并防止SQL注入。
  • ResultSet:表示数据库结果集,通常是通过执行查询语句生成的。

JDBC编程步骤

        使用JDBC编程一般包含以下几个步骤:

  • 加载驱动程序:加载JDBC驱动程序以建立与数据库的连接。
  • 建立数据库连接:通过DriverManager类获取数据库连接。
  • 创建Statement对象:通过Connection对象创建Statement对象,用于执行SQL语句。
  • 执行SQL语句:使用Statement对象执行SQL语句,并获取结果。
  • 处理结果:处理SQL语句的执行结果。
  • 关闭资源:关闭ResultSet、Statement和Connection对象,释放数据库资源。

实战示例

        接下来,我们通过一个具体示例来演示如何使用JDBC与数据库进行交互。假设我们使用MySQL数据库,并且已经在本地安装并配置好MySQL数据库。

加载驱动程序

try {
    Class.forName("com.mysql.cj.jdbc.Driver");
} 

catch (ClassNotFoundException e) {
    e.printStackTrace();
}

建立数据库连接

String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";

Connection connection = null;

try {
    connection = DriverManager.getConnection(url, username, password);
} 

catch (SQLException e) {
    e.printStackTrace();
}

创建Statement对象

Statement statement = null;

try {
    statement = connection.createStatement();
} 

catch (SQLException e) {
    e.printStackTrace();
}

执行SQL语句

String sql = "SELECT * FROM users";
ResultSet resultSet = null;

try {
    resultSet = statement.executeQuery(sql);
} 

catch (SQLException e) {
    e.printStackTrace();
}

处理结果

try {
    while (resultSet.next()) {
        int id = resultSet.getInt("id");
        String name = resultSet.getString("name");
        String email = resultSet.getString("email");
        System.out.println("ID: " + id + ", Name: " + name + ", Email: " + email);
    }
} 

catch (SQLException e) {
    e.printStackTrace();
}

关闭资源

try {
    if (resultSet != null) resultSet.close();
    if (statement != null) statement.close();
    if (connection != null) connection.close();
} 

catch (SQLException e) {
    e.printStackTrace();
}

总结

        通过本篇博客,你已经了解了JDBC的基础知识,包括其架构、驱动、常用类和接口,以及如何使用JDBC连接数据库并执行SQL操作。掌握这些基础知识后,你就可以在Java应用程序中实现各种数据库操作,如数据的增删改查等。在后续的章节中,我们将深入探讨JDBC的高级特性和优化技巧,帮助你在实际项目中更高效地进行数据库编程。希望你通过本篇博客能够对JDBC有一个全面的了解,并能够灵活应用于实际的开发工作中。祝你学习愉快,不断进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白骑士所长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值