java基于odbc连接oracle的实现方法

Java基于ODBC连接Oracle的实现方法

ODBC

ODBC(Open Database Connectivity)即开放数据库连接,是Microsoft为Windows平台上的软件和数据库产生的一种连接规范。该规范要求采用ODBC驱动程序作为中介层,支持一种面向SQL的API,使应用软件能通过ODBC来访问到数据。

ODBC适用于Windows系统中的不同数据库之间的远程数据查询,ODBC驱动将请求传递给ODBC管理器,由它去完成与本地应用程序和远程服务器之间的通信以及数据的转换、处理和返回,然后让ODBC管理器将过程结果返回给客户端。

JDBC-ODBC Bridge

JDBC-ODBC Bridge 是JDK中自带的一个驱动,用于连接数据库源为ODBC的数据库,但是随着Java的发展,该驱动已经不再推荐使用。

JDBC的发展后其发展出另一个产品:Type 4 JDBC驱动(即Java Native Driver),它不需要中间件的参与,能够和数据库直接进行连接,性能得到地很大提升。因此,我们不再推荐使用JDBC-ODBC Bridge。

JDBC与Oracle直接连接

在JDK1.2之后,Java引入了JDBC 2.0,原来的JDBC API变成了JDBC 1.0 API。JDBC 2.0 API是JDBC 1.0 API的扩展,定义了一些新的方法和接口。而在JDBC 3.0中,Oracle特意发布了一个更为优秀的Oracle JDBC驱动程序(大家看下Oracle的安装目录,在jdbc的文件夹下就能找到对应的程序)。总之,如今直接使用JDBC连接Oracle是一个比较好的选择。

Step 1:下载JDBC驱动

在官方网站 Oracle官网下载对应的JDBC驱动,在这里我们以ojdbc6.jar为例。

Step 2:连接Oracle数据库

先创建一个Connection对象,代码如下:

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/orcl", "username", "password");

其中,jdbc:oracle:thin表示使用thin连接方式(比较通用一点,也可以使用oci)。@//localhost:1521/orcl表示连接本地的orcl数据库,用户名和密码分别为username和password。

完整代码示例:

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

public class OracleJDBC {
    public static void main(String[] args) {
        // JDBC driver
        final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
        // Database URL
        final String DB_URL = "jdbc:oracle:thin:@//localhost:1521/orcl";
        // Database credentials
        final String USER = "username";
        final String PASS = "password";

        Connection conn = null;

        try {
            // Register JDBC driver
            Class.forName(JDBC_DRIVER);
            // Open a connection
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            System.out.println("Connected successfully");
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

Step 3:操作数据库

连接成功后,就可以进行数据库的操作了。这里以插入一条记录为例,代码如下:

Statement stmt = null;
String sql = "INSERT INTO EMPLOYEE " +
        "(ID, NAME, AGE) " +
        "VALUES (1, 'Tom', 25)";
try {
    stmt = conn.createStatement();
    stmt.executeUpdate(sql);
    System.out.println("Inserted record successfully");
} catch (SQLException e) {
    e.printStackTrace();
}

完整示例代码如下:

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

public class OracleJDBC {
    public static void main(String[] args) {
        // JDBC driver
        final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
        // 编码方式
        final String ENCODING = "?useUnicode=true&characterEncoding=UTF-8";
        // Database URL
        final String DB_URL = "jdbc:oracle:thin:@//localhost:1521/orcl" + ENCODING;
        // Database credentials
        final String USER = "username";
        final String PASS = "password";

        Connection conn = null;
        Statement stmt = null;

        try {
            // Register JDBC driver
            Class.forName(JDBC_DRIVER);
            // Open a connection
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            System.out.println("Connected successfully");

            // Execute a query
            stmt = conn.createStatement();
            String sql;
            sql = "INSERT INTO EMPLOYEE " +
                    "(ID, NAME, AGE) " +
                    "VALUES (1, 'Tom', 25)";
            stmt.executeUpdate(sql);
            System.out.println("Inserted record successfully");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}

总结

以上就是Java基于ODBC连接Oracle的实现方法,不仅可以通过JDBC-ODBC Bridge连接,也可以直接连接,推荐直接连接。在操作数据库时,我们需要使用Statement或PreparedStatement对象,通过executeUpdate方法执行SQL语句。通过Connection对象的close()方法关闭数据库连接。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java基于odbc连接oracle的实现方法 - Python技术站

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

相关文章

  • Java中有哪些类型的异常?

    Java中异常的类型可以分为两类:检查性异常(Checked Exception)和非检查性异常(Unchecked Exception)。 检查性异常(Checked Exception) 检查性异常是指在编译阶段进行检查的异常,如果程序中出现了这些异常,编译器会提示你必须处理该异常。这些异常通常属于外部环境引起的异常,比如I/O异常、SQL异常等。 Ja…

    Java 2023年4月27日
    00
  • MySQL详解进行JDBC编程与增删改查方法

    MySQL详解进行JDBC编程与增删改查方法 JDBC编程 Java数据库连接(Java Database Connectivity,JDBC)是Java语言中操作关系型数据库的应用程序接口,JDBC提供了一套标准的API,用于Java程序中访问数据库。 使用JDBC连接MySQL需要以下步骤: 导入MySQL驱动 java Class.forName(“c…

    Java 2023年5月19日
    00
  • 浅谈一下Java中集合的迭代方式

    那我开始讲解“浅谈一下Java中集合的迭代方式”。首先介绍下迭代方式的概念,简单来说,迭代方式就是对集合进行重复操作的方式,它代表了一种遍历集合元素的能力。在Java中,主要有以下三种迭代方式: 1. foreach循环迭代 使用foreach循环迭代时,需要在循环头部声明一个与集合对象所存储元素类型相匹配的变量,然后在循环体中使用该变量进行操作: List…

    Java 2023年5月26日
    00
  • 解决lambda表达式内出现异常无法throw抛出的问题

    当使用Lambda表达式时,可能会遇到无法抛出异常的问题。通常来说,在Lambda表达式中,我们不能throw出异常,因为这样做会导致代码无法编译。 但是,在一些特定的场合,我们还是需要在Lambda表达式中抛出异常。当这种情况发生时,我们可以通过使用java.util.function.Consumer或java.util.function.Supplie…

    Java 2023年5月27日
    00
  • Android简易图片浏览器的实现

    下面是关于“Android简易图片浏览器的实现”的完整攻略: 1. 实现概述 首先,在构建这个简易图片浏览器时,我们需要考虑几个方面:界面设计、数据加载以及图片缓存等。因此,我们可以将实现分为以下几个步骤: 界面设计:该步骤主要是实现图片的展示,并提供一系列操作,如滑动查看、保存等。我们可以使用ViewPager进行实现。 数据加载:该步骤主要是加载图片资源…

    Java 2023年5月23日
    00
  • java通过url下载文件并输出的方法

    以下是完整攻略,包含代码和说明: 通过URL下载文件并输出的方法 基本思路 下载文件的基本思路是,通过URL获取文件的输入流,然后将输入流写入输出流,最终将输出流写入文件中。在Java中,可以利用URLConnection类和BufferedInputStream/BuffferedOutputStream类来实现该过程。 示例1 以下是一个通过URL下载文…

    Java 2023年5月26日
    00
  • Java代码块与代码加载顺序原理详解

    Java 代码块与代码加载顺序原理详解 在一个类中,我们可以使用代码块来初始化一些类变量以及执行一些常规的代码逻辑。那么代码块和代码加载顺序之间又有何关系呢?本文将会深入详细地讲解这个问题。 代码块 Java 中的代码块有三种:静态代码块、普通代码块、构造代码块。这三种代码块都可以在Java程序中进行使用,其作用各异,在这里我们只关注静态代码块。 静态代码块…

    Java 2023年5月23日
    00
  • 使用Java实现先查询缓存再查询数据库

    使用Java实现先查询缓存再查询数据库是一种常见的性能优化策略,可以在查询速度较慢的情况下减少对数据库的直接访问,大大提高程序性能。以下是实现步骤: 设计缓存结构和存储方式 缓存结构可以选择常用的Map、List等集合类型。存储方式有多种,可以使用内存缓存、redis等缓存中间件等方式。 查询缓存 在查询数据库之前,先尝试从缓存中查询对应的数据。如果查询到,…

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