第22章 在Java中连接Oracle

作为当今最为流行的编程语言之一Java语言,它要与数据库沟通需要用到JDBC,本章会对JDBC做一个比较全面的介绍。本章包括以下知识点:

❑JDBC与ODBC简介

❑Thin方式连接Oracle

❑JDBC-ODBC桥连接Oracle

通过学习本章,能够使用Java语言应用两种数据库的连接方式创建自己的连接Oracle数据库的程序。

22.1 JDBC与ODBC简介

JDBC与ODBC虽然从命名上只差了一个字母,但使用方法上却有很大差异,具体它们代表什么含义以及在何时使用,相信读者通过下面的内容会对其有一个全面的了解。

22.1.1 什么是JDBC

JDBC全称是Java DataBase Connectivity(Java数据库连接),它是一套Java应用程序接口,用来执行到数据库的SQL语句,包含在Java类库中。

JDBC是程序开发人员的福音,它独立于关系数据库,可以为不同类型关系数据库提供统一访问。也就是说,开发者只需要写一个程序就可以访问不一样的数据库,而不用为此重新编写代码(如Oracle、MySQL、SQL Server或其他数据库)。它由Java语言编写,因为Java语言的“与平台无关性”,编写的程序可以运行到任何支持Java平台的环境下。同样地,我们不用为不同软硬件环境再编写不同的程序,真正做到“一次编写,随处运行”。例如,企业升级某个基于Java的项目的时候可能把Oracle从Windows环境转入Linux环境下,或者改用其他类型的数据库,而这时JDBC部分只需做微量修改而更多时候则不需要做任何修改。

JDBC简单易用,很容易上手,要想实现基本操作,几个小时之内就能得到你想要的(甚至更短时间)。总的来说,它能完成下面几个操作:

❑建立与数据库或数据源的连接;

❑发送要执行的SQL语句;

❑处理返回的结果。

以上3步将会在后面的示例中得到验证。

要想操作数据库,我们还需要有该数据库的JDBC Driver,这个驱动一般由独立厂商提供,它就像一个桥梁一样连通JDBC API和数据库。依照JDBC的规范,它支持4种类型的驱动程序。这4种驱动类型分别是:

1)JDBC-ODBC桥驱动。使用这种类型的驱动的前提条件是客户端计算机安装了ODBC驱动程序,通过JDBC调用ODBC,然后由ODBC连接数据库。但这种驱动执行效率不高,而且也不适合基于网络的应用,因为不是所有的客户计算机都安装有ODBC。

2)本地应用程序接口部分支持Java的驱动。此种类型和第1种类型驱动相似,它将JDBC调用转成某种特定数据库客户端的调用。也就是说,这种情况需要本地机器安装特定数据库的客户端。这种类型同样不适合网络应用。

3)数据库中间件的纯Java驱动。此类型驱动将把JDBC调用转成一个中间件需要的协议,然后由中间件服务转成数据库网络协议,由中间件负责连接不同的数据库。这种类型实际上是由三层构成的。它在中间件服务器上可以根据实际需求做一些调配。例如,在中间件这层使用第2种类型的驱动。

4)直接连到数据库的纯Java驱动程序。这种类型驱动完全由Java编写,使用方不需要安装客户端软件。它将JDBC调用直接转成数据库使用的网络协议,允许客户端直接访问数据库管理系统服务器。该类型驱动通常被称为第4种类型的驱动,后面的示例将对其做详细介绍。

这几种驱动类型当中,后两种是推荐使用类型,也是最常用的类型;而前两种方式对资源的依赖相对更多,通常作为临时方案或测试方案。其中第1种类型将会在ODBC中作介绍。Java应用程序、JDBC驱动以及数据库的关系如图22.1所示。该图在层次上描述了这几者所处的位置,这种关系在访问数据库的示例中会体现出来。

第22章 在Java中连接Oracle - 图1

图 22.1 层次关系