什么是数据库驱动

数据库软件可以由各个数据库厂商提供,我们熟知的mysql,oracle,sqlserver,access,db2等等都是由不同的厂商提供的,既有不同的开发商开发,因此对于数据库软件的实现过程都不尽相同。

应用程序也可以由不同的人进行开发,写代码实现的过程也不尽相同(因此应用程序和数据库软件之间属于many-to-many的关系)。如果想让应用软件和数据库之间能够产生交互,并且尽可能相互适应。换句话说,一个代码在连接任何数据库是都不用更改,就可以随意切换,一个数据库软件也可以和各种开发人员实现的应用程序无缝连接。这个时候就需要定义应用程序和数据库之间进行交互的规则(标准)。这个标准称之为驱动(Driver)。

开发商在开发数据库软件时提供针对于Driver标准的实现,应用开发人员再开发时,通过标准Driver的调用转换成对实际数据库Driver程序的调用。

因此,每一款数据库软件在实现时都会提供相对于Driver标准的一些列接口和类的实现。更明确一点说我们需要获取人家提供的这个驱动包才能保证程序和数据库之间的连接。

java.sql.Driver

四种JDBC驱动:

1.JDBC-ODBC桥加ODBC

作为jdk1.1后的一部分,是sun.jdbc.odbc包的一部分

将jdbc调用转化为odbc调用,性能低,要求用户在终端上安装相应驱动

适用于快速的原型开发,没有提供JDBC驱动的数据库如Access

java --->JDBC-ODBC桥---->ODBC --->数据库厂商代码

2.部分java实现的本地JDBC驱动

相对1有所提高,直接利用开发商提供的本地库来直接与数据库通信

java ----type2 ----native Database library ----数据库厂商代码

3.jdbc网络纯java驱动程序

将JDBC调用转换为DBMS无关的网络协议,然后由某个服务器将其转换为相应的DBMS调用

java --->type3 ---java middleware --->jdbc Driver ----->数据库厂商代码

具有最大的灵活性,通常由那些非数据库厂商提供,是四种类型中最小的

4.本地协议纯java驱动程序

将jdbc调用直接转化成响应的DBMS调用

最高的性能,通过自己的本地协议直接与数据库引擎通信,具备internet的装配能力

目前java程序连接数据库都是用纯jdbc驱动。

使用纯jdbc驱动需要先获取数据库厂商提供的驱动包:

针对于oracle数据库,可以从安装目录下的app\oracle\product\10.2.0\server\jdbc\lib下找一个叫做ojdbc14.jar。

根据jdbc版本的更新换代,现在最高的jdbc版本为4.0的版本。可以单独获取jar包,例如获取ojdbc5.jar,ojdbc6.jar.