Java JDBC连接数据库常见操作总结

Java JDBC连接数据库常见操作总结

JDBC介绍

Java 数据库连接 (Java Database Connectivity, JDBC) 是一种用于执行 SQL 语句的 Java API,可以为多个关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成,可以使 Java 应用程序轻松地访问数据库。

JDBC 本质上是通过 JNI(Java Native Interface)来调用本地代码实现的。这些本地代码组成的库被称作 JDBC 驱动程序(JDBC Driver)。JDBC 主要分为四个部分:JDBC 驱动管理器、JDBC 驱动程序、JDBC API 和 JDBC 数据库的连接。

JDBC连接数据库

使用 JDBC 连接数据库只需以下几步:

  • 导入 JDBC 驱动包:需要将 JDBC 驱动包放到 CLASSPATH 中,否则程序无法找到 JDBC 驱动。
  • 加载 JDBC 驱动程序:可以使用 Class.forName() 方法来加载 JDBC 驱动,例如加载 MySQL 驱动的代码为:Class.forName("com.mysql.jdbc.Driver");
  • 获取数据库连接对象:使用 DriverManager.getConnection() 方法获取数据库连接对象,需要传入数据库 URL、用户名和密码。
  • 执行 SQL 语句:可以使用 Statement 或 PreparedStatement 对象执行 SQL 语句。
  • 处理查询结果:使用 ResultSet 对象处理查询结果。

下面我们将通过两个示例说明如何连接数据库。

示例1:连接 MySQL 数据库

步骤1:导入 JDBC 驱动包

假设我们使用 MySQL 数据库,需要先下载 MySQL 的 JDBC 驱动包,下载地址为:https://dev.mysql.com/downloads/connector/j/。将下载得到的 JDBC 驱动包放到项目的 lib 目录下。

步骤2:加载 JDBC 驱动程序

加载 MySQL 驱动的代码为:

Class.forName("com.mysql.jdbc.Driver");

步骤3:获取数据库连接对象

获取 MySQL 数据库连接对象的代码为:

String url = "jdbc:mysql://localhost:3306/test?useSSL=false";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);

其中,url 是连接字符串,test 是数据库名称,root 是用户名,123456 是密码。这里的 useSSL=false 表示不使用 SSL 连接。

步骤4:执行 SQL 语句

假设我们要执行一条查询语句,查询表中的所有数据,代码如下:

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM user");

步骤5:处理查询结果

我们可以使用 ResultSet 对象处理查询结果,代码如下:

while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    String email = rs.getString("email");
    System.out.println(id + "\t" + name + "\t" + email);
}

完整的示例代码如下:

import java.sql.*;

public class MySQLDemo {
    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");

        String url = "jdbc:mysql://localhost:3306/test?useSSL=false";
        String user = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, user, password);

        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM user");
        while (rs.next()) {
            int id = rs.getInt("id");
            String name = rs.getString("name");
            String email = rs.getString("email");
            System.out.println(id + "\t" + name + "\t" + email);
        }

        rs.close();
        stmt.close();
        conn.close();
    }
}

输出结果为:

1   Alice   alice@example.com
2   Bob bob@example.com
3   Carol   carol@example.com

示例2:连接 Oracle 数据库

步骤1:导入 JDBC 驱动包

假设我们使用 Oracle 数据库,需要先下载 Oracle 的 JDBC 驱动包,下载地址为:http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html。将下载得到的 JDBC 驱动包放到项目的 lib 目录下。

步骤2:加载 JDBC 驱动程序

加载 Oracle 驱动的代码为:

Class.forName("oracle.jdbc.driver.OracleDriver");

步骤3:获取数据库连接对象

获取 Oracle 数据库连接对象的代码为:

String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "tiger";
Connection conn = DriverManager.getConnection(url, user, password);

其中,url 是连接字符串,localhost 是主机名,1521 是端口号,orcl 是数据库实例名。这里的 thin 表示用 thin 驱动连接,@ 后面的 : 表示用冒号隔开,依次是主机名、端口号和数据库实例名。

步骤4:执行 SQL 语句

假设我们要执行一条查询语句,查询表中的所有数据,代码如下:

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM emp");

步骤5:处理查询结果

我们可以使用 ResultSet 对象处理查询结果,代码如下:

while (rs.next()) {
    int empno = rs.getInt("empno");
    String ename = rs.getString("ename");
    String job = rs.getString("job");
    System.out.println(empno + "\t" + ename + "\t" + job);
}

完整的示例代码如下:

import java.sql.*;

public class OracleDemo {
    public static void main(String[] args) throws Exception {
        Class.forName("oracle.jdbc.driver.OracleDriver");

        String url = "jdbc:oracle:thin:@localhost:1521:orcl";
        String user = "scott";
        String password = "tiger";
        Connection conn = DriverManager.getConnection(url, user, password);

        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM emp");
        while (rs.next()) {
            int empno = rs.getInt("empno");
            String ename = rs.getString("ename");
            String job = rs.getString("job");
            System.out.println(empno + "\t" + ename + "\t" + job);
        }

        rs.close();
        stmt.close();
        conn.close();
    }
}

输出结果为:

7369    SMITH   CLERK
7499    ALLEN   SALESMAN
7521    WARD    SALESMAN
7566    JONES   MANAGER
7654    MARTIN  SALESMAN
7698    BLAKE   MANAGER
7782    CLARK   MANAGER
7788    SCOTT   ANALYST
7839    KING    PRESIDENT
7844    TURNER  SALESMAN
7876    ADAMS   CLERK
7900    JAMES   CLERK
7902    FORD    ANALYST
7934    MILLER  CLERK

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java JDBC连接数据库常见操作总结 - Python技术站

(0)
上一篇 2023年6月16日
下一篇 2023年6月16日

相关文章

  • 记一次线程爆满导致服务器崩溃的问题排查及解决

    那么我们就来详细讲解一下如何排查和解决线程爆满导致服务器崩溃的问题。 问题描述 我们的公司网站最近出现了一个严重的问题,由于线程爆满导致服务器崩溃,影响了服务的正常运行。经过初步排查发现,该问题主要集中在某个页面请求过程中,而其他页面的请求则没有出现问题。但是由于该问题不易复现,因此需要更加深入地排查问题。 排查过程 监控系统 首先,我们需要在服务器上安装监…

    Java 2023年5月26日
    00
  • 应用程序类加载器的作用是什么?

    应用程序类加载器的作用: Java应用程序在运行时,需要加载大量的类,这些类通常是由JDK自带的类库,以及我们自己编写的类组成的。为了保证程序可以正常运行,Java虚拟机需要通过类加载器来将这些类加载到内存中。而应用程序类加载器就是其中一种类加载器,其主要作用是从特定路径加载class文件到内存中,是类加载器中最常用的一种。 使用攻略: 首先需要了解应用程序…

    Java 2023年5月10日
    00
  • eclipse怎么导入Api文档?eclipse安装Api文件的方法

    当我们在使用 Eclipse 进行 Java 项目开发时,可能需要查看 Java API 文档以了解 Java 标准库中提供的类和方法。本文将提供详细的步骤,介绍如何在 Eclipse 中导入 Java API 文档以便更好地查看和使用 Java 标准库。 步骤一:下载 Java API 文档 首先,我们需要从 Oracle 官方网站下载 Java API …

    Java 2023年6月15日
    00
  • Spring 加载 Application Context五种方式小结

    下面进行详细讲解“Spring 加载 Application Context 五种方式小结”的攻略。 1. 使用 ClassPathXmlApplicationContext ClassPathXmlApplicationContext 是最常用的 Spring 上下文加载方式,也是最基本的一种方式。通过该方式可以加载类路径下的 XML 文件作为 Sprin…

    Java 2023年5月31日
    00
  • 什么是线程安全?

    以下是关于线程安全的完整使用攻略: 什么是线程安全? 线程安全是指在多线程环境下,对共享资源的访问不会出现数据不一致或者数据污染的问题。在多线程环境下,如果多个线程同时访问同一个共享资源,那么就有可能出现数据不一致的问题,这就是线程安全。 为了保证线程安全,需要采取一些措施,比如使用同步机制、使用线程安全的结构等。 1. 同步机制 同步机制是指在多线程环境下…

    Java 2023年5月12日
    00
  • Eclipse+Java+Swing+Mysql实现工资管理系统

    Eclipse+Java+Swing+Mysql实现工资管理系统攻略 1. 系统概述 工资管理系统是企业内部薪资管理的重要组成部分,其任务是集中管理员工的薪资及相关信息。本系统采用Eclipse+Java+Swing+Mysql技术实现,具备以下功能模块: 登录模块:提供登录界面,验证用户身份。 员工信息管理:添加、删除员工及修改员工信息。 薪资管理:计算、…

    Java 2023年5月30日
    00
  • 浅谈java异常处理(父子异常的处理)

    浅谈java异常处理(父子异常的处理) 什么是Java异常处理? Java中的异常处理是在程序执行过程中可能出现的问题,并且这些问题可能导致程序运行失败或者终止。Java异常处理机制就是为了解决这些问题而设计的。 在Java中,异常指的是一个事件,它会影响程序的正常执行,需要进行相应的处理。Java中的异常分为两种类型:Checked Exception 和…

    Java 2023年5月28日
    00
  • 手撸一个Spring Boot Starter并上传到Maven中央仓库

    下面就是手撸一个Spring Boot Starter并上传到Maven中央仓库的完整攻略: 什么是Spring Boot Starter Spring Boot Starter是一个针对特定的场景,预先配置好Spring Boot和第三方库的样板代码模板。这个模板通常包含了对于Spring Boot应用程序的配置、依赖管理、初始化等操作,并通过自动配置的方…

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