Java连接Oracle数据库并查询

下面将详细讲解“Java连接Oracle数据库并查询”的完整攻略。

准备工作

在连接Oracle数据库之前,我们需要完成以下几项准备工作:

  1. 确保已经安装了 Java Runtime Environment(JRE),并设置了系统环境变量。
  2. 下载并安装 Oracle 数据库。
  3. 启动 Oracle 数据库,并创建一个测试用户。我们假设该用户的用户名为 testuser,密码为 testpass,它拥有一个测试表 test_table,其中包含若干行数据。

连接数据库

要连接 Oracle 数据库,需要使用 Java Database Connectivity(JDBC)API。JDBC 是 Java 用于与各种关系型数据库进行通信的一种标准。以下是连接 Oracle 数据库的步骤:

  1. 加载 JDBC 驱动程序。Oracle 提供了官方的 JDBC 驱动程序,可以从 Oracle 官网上下载并安装。我们假设安装了版本为 12c 的 JDBC 驱动程序。在代码中,可以使用 Class.forName() 方法加载驱动程序:
Class.forName("oracle.jdbc.driver.OracleDriver");
  1. 创建数据库连接。在连接数据库之前,需要指定数据库的 URL,用户名和密码。以下是一个数据库连接示例:
String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
String user = "testuser";
String password = "testpass";
Connection conn = DriverManager.getConnection(url, user, password);

其中,url 是 Oracle 数据库的链接字符串,形如:jdbc:oracle:thin:@主机名:端口号:服务名。user 和 password 分别是连接 Oracle 数据库的用户名和密码。

  1. 创建 Statement 对象。Statement 对象用于向 Oracle 数据库发送 SQL 语句,并接收返回结果。以下是一个创建 Statement 对象的示例:
Statement stmt = conn.createStatement();

现在,我们已经成功连接 Oracle 数据库,并创建了一个 Statement 对象。接下来,我们可以向 Oracle 数据库发送 SQL 语句了。

发送 SQL 语句

以下是向 Oracle 数据库发送 SQL 语句的步骤:

  1. 构造 SQL 语句。SQL 语句是用于查询或操作数据库的命令。以下是一个查询语句的示例:
String sql = "SELECT * FROM test_table WHERE id > 10";
  1. 执行 SQL 语句。执行 SQL 语句可以使用 Statement 对象的 executeQuery() 方法。该方法返回一个 ResultSet 对象,其中包含 SQL 语句的结果集。以下是一个执行 SQL 语句的示例:
ResultSet rs = stmt.executeQuery(sql);
  1. 处理结果集。ResultSet 对象包含了 SQL 语句的结果集。我们可以使用 ResultSet 对象的各种方法,比如 getString()、getInt()、getFloat() 等,来获取结果集的数据。以下是一个处理结果集的示例:
while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    float price = rs.getFloat("price");
    System.out.println("id: " + id + ", name: " + name + ", price: " + price);
}

在以上示例中,我们使用了 ResultSet 对象的 next() 方法遍历结果集的所有行,使用 getInt()、getString()、getFloat() 方法获取每行的数据,最后打印到控制台上。

示例代码

以下是一个完整的 Java 连接 Oracle 数据库并查询的示例:

import java.sql.*;

public class OracleDemo {

    public static void main(String[] args) {

        try {
            // 加载 JDBC 驱动程序
            Class.forName("oracle.jdbc.driver.OracleDriver");

            // 创建数据库连接
            String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
            String user = "testuser";
            String password = "testpass";
            Connection conn = DriverManager.getConnection(url, user, password);

            // 创建 Statement 对象
            Statement stmt = conn.createStatement();

            // 执行 SQL 语句
            String sql = "SELECT * FROM test_table WHERE id > 10";
            ResultSet rs = stmt.executeQuery(sql);

            // 处理结果集
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                float price = rs.getFloat("price");
                System.out.println("id: " + id + ", name: " + name + ", price: " + price);
            }

            // 关闭连接
            rs.close();
            stmt.close();
            conn.close();

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

}

以上示例代码演示了如何连接 Oracle 数据库并查询一张表中 ID 大于 10 的记录。如果要查询其他条件的记录,只需修改 SQL 语句即可。

以下是另一个示例,演示了如何向 Oracle 数据库插入一条记录:

import java.sql.*;

public class OracleDemo {

    public static void main(String[] args) {

        try {
            // 加载 JDBC 驱动程序
            Class.forName("oracle.jdbc.driver.OracleDriver");

            // 创建数据库连接
            String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
            String user = "testuser";
            String password = "testpass";
            Connection conn = DriverManager.getConnection(url, user, password);

            // 创建 Statement 对象
            Statement stmt = conn.createStatement();

            // 执行 SQL 语句
            String sql = "INSERT INTO test_table (id, name, price) VALUES (4, 'Apple', 10.99)";
            int rows = stmt.executeUpdate(sql);
            System.out.println(rows + " rows affected");

            // 关闭连接
            stmt.close();
            conn.close();

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

}

以上示例代码演示了如何向 Oracle 数据库插入一条记录,该记录的 ID 为 4,名称为 Apple,价格为 10.99。如果要插入其他记录,只需修改 SQL 语句即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java连接Oracle数据库并查询 - Python技术站

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

相关文章

  • 一文带你了解Java选择排序的原理与实现

    一文带你了解Java选择排序的原理与实现 什么是选择排序 选择排序是一种简单但低效的排序算法,其主要思想是每次从待排序的数列中选取最小(或最大)的数放到已排序数列的末尾,直到所有的数都被排序完毕。 选择排序的时间复杂度为O(n²),虽然效率比冒泡排序略高,但是由于其固定的O(n²)时间复杂度,对于大规模数据的排序,效率仍然十分低下。 选择排序的具体实现 以下…

    Java 2023年5月19日
    00
  • NodeJS实现不可逆加密与密码密文保存的方法

    下面是“NodeJS实现不可逆加密与密码密文保存的方法”的完整攻略。 1. 什么是不可逆加密 不可逆加密(也称哈希函数)是一种将任意长度的输入(一般是明文)通过哈希算法变换成固定长度的输出(一般是密文)的方法,它的特点是不可逆性、唯一性、固定性、散列值分布性等,常用于实现密码的密文保存。 2. NodeJS中的常见哈希函数 在NodeJS中,常见的哈希函数包…

    Java 2023年5月23日
    00
  • java单例五种实现模式解析

    Java单例五种实现模式解析 什么是单例模式? 单例模式是指一个类只能被实例化一次,并且全局都可以访问到这个实例。在实际开发中,很多情况下我们只需要一个实例,例如全局配置信息、日志管理等等,这时候使用单例模式可以节省系统资源,减少不必要的开销。 单例模式的特点 保证一个类只有一个实例。 提供一个访问该实例的全局入口。 不能被其他对象实例化。 五种实现模式 1…

    Java 2023年5月26日
    00
  • java基础知识之FileInputStream流的使用

    Java基础知识之FileInputStream流的使用 在Java中,FileInputStream(字节流)是用于读取文件的流类之一。该类继承了InputStream类,并且提供了基本的方法来读取数据。 前置知识 在使用FileInputStream类之前,需要掌握以下Java基础知识: 输入/输出流(I/O Stream) Java中的文件操作概念,如…

    Java 2023年5月27日
    00
  • JavaWeb项目FullCalendar日历插件使用的示例代码

    下面是详细讲解JavaWeb项目中使用FullCalendar日历插件的攻略: 简介 FullCalendar是一款基于jQuery的开源工具,可以用来构建全功能、交互式日历和调度表。它可以用于Web应用程序、企业级管理系统、个人日历、日程安排等场景。使用FullCalendar可以快速高效地构建一个功能丰富的日历。下面是如何在JavaWeb项目中使用Ful…

    Java 2023年5月23日
    00
  • 使用Jackson反序列化遇到的问题及解决

    使用Jackson进行反序列化过程中可能会出现一些问题,比如: 1.无法处理嵌套的JSON对象 2.无法处理JSON数组 3.无法处理格式不一致的JSON数据 下面将介绍如何解决这些问题。 问题1:无法处理嵌套的JSON对象 当JSON对象中包含嵌套的子对象时,我们可以通过创建一个新的Java类来表示该子对象,然后将它作为主类的成员变量。 示例代码如下: {…

    Java 2023年5月26日
    00
  • springboot+spring data jpa实现新增及批量新增方式

    下面是关于springboot+spring data jpa实现新增及批量新增方式的完整攻略,希望能对您有所帮助。 1. 准备工作 在开始之前,我们需要确保使用的开发环境已经具备以下条件: JDK 8 或以上 Maven 3.2 或以上 IDE:Eclipse 或 IntelliJ IDEA 2. 创建Spring Boot 项目 首先,我们需要创建一个新…

    Java 2023年5月20日
    00
  • java 文件流的处理方式 文件打包成zip

    Java文件流的处理方式是 Java IO 提供的一种输入输出流 API。Java 的 IO 包提供了对外部数据来源和写入运行环境的能力,可以用于本地文件、网络资源、内存缓冲区等。Java IO 分为输入流和输出流两部分,其中输入流主要负责读取数据,而输出流则负责写入数据到指定位置。 Java 中可以使用java.util.zip和java.io包中提供的压…

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