JDBC驱动程序
JDBC驱动程序是JDBC API中实现定义的接口。
JDBC是java语言中的与数据库连接的接口。
也就是说JDBC是Java API,使得Java可以与数据库进行连接,而JDBC驱动程序是JDBC API,驱动JDBC进一步与数据库进行交互。
例如:使用JDBC驱动程序,可以发送SQL或者数据库命令,然后就可以打开数据库连接并与数据库进行交互。
JDBC驱动的类型
Sun公司讲实现类型分为四种,1,2,3,和4类型。
类型1: JDBC-ODBC桥驱动程序
【知识点】ODBC
什么是ODBC?
它是Open Database Connection,中文解释为开放数据连接。百度百科上面说它为解决异构数据库间的数据共享而产生的,这很难理解。
首先我们现在有很多中数据库系统,如Oracle的Mysql,Sql Server等等,同时不同模型的数据库还有一大堆,抛去关系型数据库还有层次型、网络型、面向对象型...还有他们运行的操作系统也有不同,有的运行在linux上,有的呢又运行在windows上,当然也不一定安装在计算机中,可以安装在各种设备中,如:大型机、小型机、嵌入式系统中。那么这些不同的数据库系统的集合就可以称为异构数据库!!那么有没有互联的需求吗?答案是一定的,他们需要共享数据!
当今世界,人们对数据的需求越来越广泛。一个部门里我们可以统一标准,必须在PC上使用Mysql!但是不同部门与不同部门之间同样需要数据共享。所以数据库互联成为了一个很头疼的问题。
ODBC就是为了解决这一问题的。在操作系统中安装ODBC,应用程序可以用ODBC驱动来完成所有的数据库操作。没错,所有的!
大概了解这么多也就足够了。
回到类型一的驱动程序,JDBC桥接器用于访问安装在每台客户机上的ODBC驱动程序。然后通过ODBC可以进行数据库的交互。
但现在不推荐使用这种类型的驱动程序。
JDK1.2附带的JDBC-ODBC桥接就是这种驱动程序。
类型2:JDBC本地API
在此类型中,JDBC API调用将转换为本地C/C++ API调用。这些驱动程序通常由数据库提供商提供。必须在每个客户机上安装供应商特定的驱动程序。
这个和类型1使用方式是相同的,但是他需要特定于数据库,但是有点也显而易见,它能够自行扩展,消除了ODBC开销(看图,不再需要ODBC提供服务了)。
Oracle调用接口(OCI)驱动程序就是此类型的示例。
类型3:JDBC-Net纯Java
这一类型使用三层方法访问数据库。JDBC客户端使用标准网络套接字与中间件应用程序服务器进行通信。套接字信息随后由中间件应用服务器转换为DBMS所需的调用格式,并转发到数据库服务器。
由此可见此驱动很令或,不需要在哭胡段上面安装代码,一个驱动程序实际上可以提供多个数据库的访问。
可以将在应用程序服务器视为JDBC“代理”,他会调用客户端应用程序。
应用程序服务器会使用类型1,2或4与数据库通信。
类型4 :100%纯java
基于纯Java的驱动程序同样通过套接字连接与供应商的数据库直接通信。但是不同的是,这通常由供应商自己提供。
优点是同样灵活。还有这些驱动由于是数据库供应商提供的,所以还可以动态的下载。
MysqlConnector/J
驱动程序是类型4驱动程序。
该使用哪个类型的驱动程序?
如果您正在访问一种类型的数据库,例如Oracle,Sybase或IBM DB2,则首选驱动程序类型为类型4。
如果Java应用程序同时访问多种类型的数据库,则类型3是首选驱动程序。
类型2驱动程序在数据库不可用的类型3或类型4驱动程序的情况下使用。
类型1驱动程序不被视为部署级驱动程序,通常仅用于开发和测试目的。
参考资料
易百教程
百度百科