基于Java回顾之JDBC的使用详解

基于Java回顾之JDBC的使用详解

1. 什么是JDBC

JDBC是Java DataBase Connectivity的缩写,它是用于Java语言操作关系型数据库的应用程序接口(API)。JDBC提供了一种标准的方法,用于连接和操作各种类型的关系型数据库。

JDBC规范定义了一套Java类库,通过这些类库,我们可以在Java程序中使用SQL命令执行各种数据库操作,例如查询、插入、删除和更新数据等。

JDBC不是一个DBMS,而是一个标准,因此可以在各种DBMS上有效使用。

2. JDBC的使用

Java应用程序使用JDBC API与JDBC驱动程序(driver)配合,从而访问数据库和执行SQL语句。JDBC程序的几个步骤如下:

  1. 加载并注册JDBC驱动(driver)
  2. 创建数据库连接
  3. 创建SQL语句
  4. 执行SQL语句
  5. 处理查询结果
  6. 关闭连接

我们需要注意的是,在每个步骤中都可能引发异常,因此需要使用try-catch代码块捕获异常。

下面是两个使用JDBC连接MySQL数据库的示例:

示例1:查询数据并打印输出

首先,我们需要在MySQL数据库中创建一个名为person,包含idnameage三个字段的表。

CREATE TABLE person(
   id INT PRIMARY KEY,
   name VARCHAR(20),
   age INT
);

然后,编写Java程序如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JDBCExample {
    public static void main(String[] args) {
        try {
            // 加载并注册JDBC驱动
            Class.forName("com.mysql.cj.jdbc.Driver");

            // 创建数据库连接
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC", "root", "root");

            // 创建SQL语句
            Statement stmt = con.createStatement();

            // 执行SQL语句
            ResultSet rs = stmt.executeQuery("SELECT * FROM person");

            // 处理查询结果
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                int age = rs.getInt("age");
                System.out.println("ID: " + id + " | Name: " + name + " | Age: " + age);
            }

            // 关闭连接
            rs.close();
            stmt.close();
            con.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

这个程序首先加载并注册MySql驱动,然后创建一个连接,并执行一个查询语句,最后遍历查询结果并将它们打印到控制台。请注意,在这个示例中,我们使用了Statement对象执行了查询操作。

示例2:插入数据

我们想在刚才创建的表中插入新数据,编写Java程序如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class JDBCExample {
    public static void main(String[] args) {
        try {
            // 加载并注册JDBC驱动
            Class.forName("com.mysql.cj.jdbc.Driver");

            // 创建数据库连接
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC", "root", "root");

            // 创建SQL语句
            Statement stmt = con.createStatement();

            // 执行SQL语句
            int result = stmt.executeUpdate("INSERT INTO person VALUES (1, 'Mike', 20)");

            // 关闭连接
            stmt.close();
            con.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

这个程序首先加载并注册MySql驱动,然后创建一个连接,并执行一个INSERT语句,将新的数据插入到person表中。在这个例子中,我们使用了Statement对象执行了插入操作,并使用了executeUpdate()方法。

3. 总结

在本文中,我们讲解了JDBC的基本用法,包括连接数据库、执行SQL语句等。我们也通过两个示例演示了如何使用Java程序连接MySQL数据库,实现查询和插入操作。通过学习本文,希望读者能够对JDBC有更深入的理解,同时也能够对Java程序如何操作关系型数据库有更好的把握。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于Java回顾之JDBC的使用详解 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 关于Java虚拟机HotSpot

    关于Java虚拟机HotSpot完整攻略 Java虚拟机(JVM)是Java语言的核心组件之一,它是Java语言跨平台特性的基石。HotSpot是目前最流行的Java虚拟机之一,它是由Sun Microsystems公司开发的,现在则由Oracle维护。本文将详细介绍HotSpot的概念、工作原理、性能调优和问题排查。 HotSpot的概念 HotSpot是…

    Java 2023年5月26日
    00
  • springboot中jsp配置tiles全过程

    下面是Spring Boot中配置JSP和Tiles的整个过程及两个示例展示。 1. 引入JSP和Tiles依赖 首先,在pom.xml中添加JSP和Tiles的依赖: <!–JSP依赖–> <dependency> <groupId>org.apache.tomcat.embed</groupId> &l…

    Java 2023年6月15日
    00
  • Spring Boot(四)之使用JWT和Spring Security保护REST API

    下面是关于Spring Boot如何使用JWT和Spring Security保护REST API的攻略: 什么是JWT? JSON Web Token(JWT)是一种开放标准(RFC 7519),用于通过网络在各方之间安全地传输声明。JSON Web Token是由三部分组成:标题,声明和签名。例如: eyJhbGciOiJIUzI1NiIsInR5cCI…

    Java 2023年5月20日
    00
  • Java toString方法使用超全讲解

    Java toString方法使用超全讲解 什么是toString方法 toString()是Java中的一个非常重要的方法,它的作用是返回对象的字符串表示形式。通常来说,我们在使用Java时,需要在特定的场景下输出对象的字符串形式,例如: 在日志中输出对象的信息 在控制台中输出对象的信息 在界面中展示对象的信息等等 这时,就可以使用对象的toString(…

    Java 2023年5月26日
    00
  • java中double类型运算结果异常的解决方法

    针对“java中double类型运算结果异常的解决方法”,我给你详细讲解一下。 首先,问题的背景 在Java中,double类型是一种浮点数类型,用于存储小数,然而由于浮点数在计算机中的存储方式,会带来一些运算问题,例如: double a = 0.1; double b = 0.2; double c = a + b; System.out.println…

    Java 2023年5月27日
    00
  • Spring MVC 自定义数据转换器的思路案例详解

    Spring MVC 自定义数据转换器的思路案例详解 Spring MVC 是一个非常流行的 Java Web 框架,它提供了很多便捷的功能,其中包括数据转换器。数据转换器可以将请求参数转换为 Java 对象,或将 Java 对象转换为响应参数。Spring MVC 默认提供了很多数据转换器,但有时候我们需要自定义数据转换器来满足特定的需求。本文将详细讲解 …

    Java 2023年5月18日
    00
  • SpringBoot与Quartz集成实现分布式定时任务集群的代码实例

    SpringBoot与Quartz集成实现分布式定时任务集群的代码实例 1. 什么是Quartz Quartz是一个开源的作业调度框架,可以用来实现定时任务、计划任务等。Quartz提供了丰富的API,可以满足各种复杂的调度需求。Quartz还支持集群部署,可以实现分布式定时任务的调度。 2. SpringBoot与Quartz集成 在SpringBoot中…

    Java 2023年5月15日
    00
  • 对象头包括哪些内容?

    以下是关于“对象头包括哪些内容?”的完整使用攻略: 1. 对象头的结构 在Java中,每个对象都有一个对象头,用于存储对象的元数据信息。对象头包含了以下几个部分: Mark Word:用于存储对象的哈希码、锁状态、GC信息等。 Class Pointer:指向对象的类元数据信息。 Array Length:仅在数组对象中存在,用于存储数组的长度。 对象头的大…

    Java 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部