您的位置:

Java连接Oracle数据库

Java与Oracle数据库的连接可以使用JDBC(Java DataBase Connectivity)来实现,本文将从以下几个方面对Java连接Oracle进行详细的阐述:

一、JDBC简介

JDBC是一种独立于数据库管理系统(DBMS)的API,它提供了一种标准的方法来访问不同类型的数据库。 Java程序通过JDBC来连接关系型数据库,从而可以执行SQL语句、访问和修改数据等操作。

目前JDBC规范包括两个部分:JDBC API和JDBC驱动程序。JDBC API是Java程序访问数据库的标准接口,而JDBC驱动程序则是提供JDBC API标准实现的库。

二、Oracle JDBC驱动

Oracle官方提供了一个JDBC驱动程序Oracle JDBC driver,用于连接Oracle数据库,可以从Oracle官网下载。下载时需要选择对应的JDBC版本、操作系统和Java版本。通常,我们使用最新版本的JDBC驱动程序。

三、连接Oracle数据库

Java程序连接Oracle数据库需要使用JDBC驱动程序,并且需要按照以下步骤进行:

1. 加载JDBC驱动程序

Java程序中需要使用JDBC驱动程序,因此需要在程序中加载驱动程序。加载驱动程序的方式有两种,一种是使用Class.forName()方法,另一种是使用DriverManager.registerDriver()方法。

// 第一种方式,使用Class.forName()方法加载驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");

// 第二种方式,使用DriverManager.registerDriver()方法加载驱动程序
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

2. 连接数据库

连接Oracle数据库需要指定数据库的URL、用户名和密码。其中,URL由协议、主机、端口和数据库名组成。例如:

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

四、执行SQL语句

连接Oracle数据库后,Java程序可以执行SQL语句,包括查询、插入、更新和删除等操作。在Java中执行SQL语句需要使用Statement或PreparedStatement对象。其中,PreparedStatement对象可以预编译SQL语句,提高执行效率。

1. 查询数据

查询数据需要创建一个Statement或PreparedStatement对象,然后使用ResultSet获取查询结果。

// 创建PreparedStatement对象,预编译SQL语句
String sql = "SELECT * FROM emp WHERE deptno = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInt(1, 10);

// 执行查询操作,获取ResultSet
ResultSet rs = stmt.executeQuery();
while(rs.next()) {
    // 处理查询结果
    int empno = rs.getInt("empno");
    String ename = rs.getString("ename");
    double sal = rs.getDouble("sal");
    // ...
}

2. 插入、更新和删除数据

插入、更新和删除数据同样需要创建PreparedStatement对象,并指定相应的SQL语句。执行结果可以使用executeUpdate()方法获取。

// 创建PreparedStatement对象,预编译SQL语句
String sql = "INSERT INTO emp VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInt(1, 8888);
stmt.setString(2, "test");
stmt.setString(3, "CLERK");
stmt.setInt(4, 7902);
stmt.setDate(5, new Date(System.currentTimeMillis()));
stmt.setDouble(6, 1500.00);
stmt.setDouble(7, null);
stmt.setInt(8, 10);

// 执行插入操作,获取更新结果
int result = stmt.executeUpdate();

五、关闭连接

Java程序连接Oracle数据库后,需要在不使用时关闭数据库连接,释放资源。关闭数据库连接可以使用Connection的close()方法,例如:

// 关闭数据库连接
conn.close();

六、完整代码示例

下面是一个完整的Java连接Oracle数据库的代码示例:

import java.sql.*;

public class OracleJdbcExample {

    public static void main(String[] args) {
        String url = "jdbc:oracle:thin:@localhost:1521:orcl";
        String username = "scott";
        String password = "tiger";

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

            // 连接Oracle数据库
            Connection conn = DriverManager.getConnection(url, username, password);

            // 查询数据
            String sql = "SELECT * FROM emp WHERE deptno = ?";
            PreparedStatement stmt = conn.prepareStatement(sql);
            stmt.setInt(1, 10);
            ResultSet rs = stmt.executeQuery();
            while(rs.next()) {
                int empno = rs.getInt("empno");
                String ename = rs.getString("ename");
                double sal = rs.getDouble("sal");
                System.out.println(empno + "\t" + ename + "\t" + sal);
            }
            rs.close();
            stmt.close();

            // 插入数据
            sql = "INSERT INTO emp VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
            stmt = conn.prepareStatement(sql);
            stmt.setInt(1, 8888);
            stmt.setString(2, "test");
            stmt.setString(3, "CLERK");
            stmt.setInt(4, 7902);
            stmt.setDate(5, new Date(System.currentTimeMillis()));
            stmt.setDouble(6, 1500.00);
            stmt.setDouble(7, 0);
            stmt.setInt(8, 10);
            int result = stmt.executeUpdate();
            System.out.println("Insert result: " + result);
            stmt.close();

            // 关闭数据库连接
            conn.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
连接mysql数据库笔记1(如何连接数据库mysql)

2022-11-10
Java连接Oracle数据库

2023-05-18
重学java笔记,java笔记总结

2022-11-23
java方法整理笔记(java总结)

2022-11-08
数据库的笔记mysql,数据库管理系统笔记

2022-11-24
java学习笔记(java初学笔记)

2022-11-14
印象笔记记录java学习(Java成长笔记)

2022-11-12
jsp数据库笔记,jsp写入数据库

本文目录一览: 1、怎么用jsp连接mysql数据库 2、jsp中怎么使用数据库 3、JSP 从数据库中如何取得图片的路径? 怎么用jsp连接mysql数据库 一. 数据库的连接和操作笔记:1.初始化

2023-12-08
java与数据库连接篇,数据库和java怎么连接

2022-11-21
jsp怎么配置连接数据库,jsp怎么配置连接数据库的数据

本文目录一览: 1、在jsp编程中如何连接数据库? 2、jsp怎么连接mysql数据库 3、jsp怎么连接sql数据库 4、jsp如何连接数据库 5、怎么用jsp连接mysql数据库 6、在jsp编程

2023-12-08
Java数据库连接,java 连接数据库

2023-01-04
java笔记,大学java笔记

2022-11-28
mysql数据库连接数等待时间(数据库连接时间设置)

2022-11-14
发篇java复习笔记(java课程笔记)

2022-11-09
php释放数据库连接,php与数据库的连接

2022-11-25
mysql数据库完整笔记(mysql数据库数据)

2022-11-13
使用Java连接数据库

2023-05-11
Java连接Oracle数据库必备驱动程序ojdbc.jar

2023-05-18
java学习的一些基础笔记(java初学笔记)

2022-11-14
jsp使用java连接数据库(jsp连接数据库的方法)

本文目录一览: 1、怎么使用JAVA连接数据库? 2、怎么用jsp连接mysql数据库 3、在JSP页面中实现连接数据库与在Java程序中实现连接数据库有什么区别? 4、java 中 怎样将JSP页面

2023-12-08