几乎所有的软件系统都不同层次地需要数据库系统的支持,而相对企业应用而言,数据库更是其最重要的组成部分。
纵观商用数据库市场的发展过程,自20世纪70年代关系模型提出后,被众多商用数据库厂商所推崇,接近90%的DBMS系统中,都采用了关系数据模型。从20世纪90年代红极一时的小型数据库的鼻祖dBaseIII和Foxpro(Foxbase)到现在的Access;从Oracle、Sysbase、Informix的三足鼎立时代到现在由Oracle、DB2、SQL Server构成的三大企业数据库阵营,每一个都是关系数据模型的典型案例。
各种产品在通过需求的不断增加和市场的激烈竞争后,经历了从单机环境到网络环境,从支持信息管理到联机事务处理(OLTP),再到联机分析处理(OLAP)的发展过程;对关系模型的支持逐步完善,系统的功能不断增强。
商用数据库产品的不断完善,市场份额的逐渐增大,其原动力来自应用系统对数据库不断增强的依赖性。从数据量庞大的搜索引擎、网上图书馆、网上商城,到手机上的电话簿管理程序,不论是规模庞大的企业应用,还是功能单一的小型程序,其中都有数据库系统的身影。
现代的应用软件系统所管理的数据规模不断扩大,数据库访问技术已经成为应用系统开发过程中必不可少的环节之一。如何有效存储并管理这些数据,是实现系统功能的重要组成部分,同时也是决定系统运行效率的关键所在。
也就是说,开发应用系统的工作量,大部分是用于对数据进行有效的管理(存储、检索)。
正是由于“数据库访问”在应用系统开发中的特殊地位和重要性,我们特意在第一个实例中给大家介绍一套简单、高效的数据访问组件——DBHandle。
本章除了对数据库组件的原理进行全面的介绍外,还将通过完整的实例对这些组件的调用方法进行详细的描述,帮助读者快速熟悉这些组件,并将其应用在实际的开发工作中。
下面我们将从Java访问数据库的方法和数据库组件的原理入手,逐步向大家介绍数据库组件——DBHandle。
2.1 Java数据库访问概述
Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载(Applet)等特性,是编写网络应用程序的首选语言,但Java语言并不包含数据库系统,也不能直接访问数据库系统,数据库系统及接口大都由第三方软件厂商独立提供。
各种数据库厂商生产的数据库系统也都拥有自己的操作语言和控制指令,相互之间各不相同(例如MS SQL Server的Transact SQL和Oracle的PL/SQL)。但大多数数据库厂商都支持由ANSI(美国国家标准学会)发布的标准SQL(Structured Query Language)结构化查询语言。
因此用Java语言访问数据库,所需要的只是在Java应用程序与各种不同数据库系统之间建立对话(Connection)的方法,这些方法在JDK的基类中已经提供,而JDBC正是这些用于访问数据库的组件的统称。
JDBC是Java DataBase Connectivity的缩写,由一些Java语言编写的类和接口(Interface)组成。在java.sql包里提供了JDBC API,定义了访问数据库的接口和类。
事实上,JDBC本身并不能直接访问数据库,它需要依赖JDBC驱动程序,这些驱动程序通常由数据库厂商提供。幸运的是,由于Java的广泛流行,大多数数据库厂商都提供了JDBC驱动程序以支持在Java应用中访问相应的数据库。
目前,JDBC已成为一种开发人员访问数据库使用的标准API。通过JDBC,开发人员可以用Java语言编写各种复杂的数据库应用程序。
现在,在基于Java技术的应用系统中,程序员可以不用关心所用的数据库系统,通过JDBC访问各种数据库,并向数据库系统发送标准SQL语句来实现对数据库的各种操作。
换言之,通过JDBC API,就不必为访问Sybase数据库专门写一个程序,而又为访问Oracle数据库专门写一个程序。您只需用JDBCAPI写一个程序就够了,它可以向相应的数据库发送标准的SQL语句完成同样的工作。这样,使用Java编程语言编写的数据库应用程序,也免去了跨平台移植的障碍。在Java中用JDBC访问数据库真正使得应用系统具备了“编写一次到处运行”的跨平台特性。
真正的数据库无关性,编程过程中必须采用标准的SQL指令,而不能使用数据库厂商扩展的SQL指令集,如T-SQL或PL/SQL等。
那么JDBC到底可以做些什么呢?简单地说它可以做三件事情:与数据库建立连接、向数据库系统发送SQL语句、将获得数据库系统返回的值或结果集。





