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

yizhihongxing

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日

相关文章

  • SpringMVC框架搭建idea2021.3.2操作数据库的示例详解

    下面我会详细讲解“SpringMVC框架搭建idea2021.3.2操作数据库的示例详解”的完整攻略。 1. 搭建SpringMVC框架和数据库 下载配置Tomcat 首先要下载配置Tomcat,可在官网下载二进制安装包,并在IDEA中进行配置。 创建新的项目 在IDEA中创建SpringMVC项目,选择“SpringMVC”模板即可。 配置SpringMV…

    Java 2023年5月20日
    00
  • Spring Security实现多次登录失败后账户锁定功能

    一、Spring Security实现多次登录失败后账户锁定功能的实现过程 配置登录失败处理器 在Spring Security的配置类中,通过实现 org.springframework.security.web.authentication.AuthenticationFailureHandler 接口,自定义一个登录失败处理器。 示例代码: @Conf…

    Java 2023年5月20日
    00
  • 在Flash中实现物体运动的三种方法介绍(AS)

    当使用Flash软件制作动画或游戏时,需要使用一些方法来实现物体的运动效果。在ActionScript编程中,也可以使用一些代码来实现物体的移动,以下是三种常用的方法: 一、基于坐标移动 这种方法是指直接修改物体的坐标值,实现物体的移动。以AS3为例,在代码中可以使用如下方法: object.x = object.x + 10; // 将物体沿着 x 轴正方…

    Java 2023年6月15日
    00
  • Java ArrayList使用总结

    Java ArrayList使用总结 本文主要介绍Java ArrayList的使用方法,包括以下内容: ArrayList的定义和初始化 ArrayList的常用操作 ArrayList的遍历 ArrayList的常见问题及解决方案 1. ArrayList的定义和初始化 ArrayList是Java语言中的集合类,用于存储一组相同类型的元素。可以通过以下…

    Java 2023年5月26日
    00
  • springboot+VUE前后端分离实现疫情防疫平台JAVA

    SpringBoot+Vue前后端分离实现疫情防疫平台JAVA 本文将详细介绍如何使用SpringBoot和Vue实现一个疫情防疫平台。在本文中,我们将使用SpringBoot 2.x版本和Vue 2.x版本。 1. 前后端分离架构 前后端分离架构是一种将前端和后端分离开发的架构模式。在这种架构中,前端和后端分别独立开发,通过API接口进行通信。前端负责展示…

    Java 2023年5月18日
    00
  • Java使用正则表达式检索、替换String中特定字符和正则表达式的一切

    Java中使用正则表达式进行字符串的检索、替换等操作主要依靠Java.util.regex包中提供的类和方法。下面将从如下几个方面,介绍Java使用正则表达式进行检索、替换操作的完整攻略: 正则表达式的基础知识 在使用Java进行正则表达式操作之前,我们需要先了解一些正则表达式的基础知识,包括常用的正则表达式符号/语法、匹配模式等。下面给出一个简单的正则表达…

    Java 2023年5月27日
    00
  • uploadify在Firefox下丢失session问题的解决方法

    针对“uploadify在Firefox下丢失session问题”的解决方法,以下是一个完整的攻略: 问题描述 使用uploadify上传文件时,在Firefox浏览器下登录用户的session会丢失。这会导致用户无法正确地上传文件和访问相关的API。 解决方案 有两种解决方案可供选择。 方案一:关闭Firefox的cookie隐私模式 这个问题的根本原因是…

    Java 2023年6月15日
    00
  • Kafka使用Java客户端进行访问的示例代码

    下面是Kafka使用Java客户端进行访问的示例代码的完整攻略。 环境搭建 首先要确保本地环境已经安装了以下软件: JDK 1.8+ Apache Kafka 2.7.0+ Maven 3.0+ 在确保以上软件环境配置完成后,开始进行Kafka使用Java客户端进行访问的示例代码的操作。 示例一:发送消息到Kafka 创建maven项目 首先,在本地创建一个…

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