按照SUN公司的标准,在JDBC3.0中基于JDBC技术的驱动程序共分成4种,分别是:
- JDBC-ODBC Bridge driver (Bridge)(JDBC-ODBC桥驱动程序)
- Native-API/partly Java driver (Native)(本地API驱动程序)
- All Java/Net-protocol driver(网络协议驱动程序)
- All Java/Native-protocol driver (Pure)(本地协议驱动程序)
Type 1: JDBC-ODBC Bridge driver (Bridge)(JDBC-ODBC桥驱动程序)
该驱动的模式
应用程序→JDBC-ODBC Bridge→JDBC-ODBC Library→ODBC Driver→Database
这是最开始JDBC连接数据库的方式,实际是把所有JDBC的调用传递给ODBC,再由ODBC调用本地数据库驱动代码。使用ODBC需要配置系统数据源名称(DSN)表示目标数据库。
Type1的方式可以访问几乎所有的数据库,但Type1方式不是纯java实现,不具备可移植性,另外要求安装ODBC驱动。
Type 2: Native-API/partly Java driver (Native)(本地API驱动程序)
该驱动的模式
应用程序→JDBC Driver→Native Database Library→Database
Type2是通过数据库本身提供的API来访问。Oracle就提供这类型的驱动,最大的好处是功能强大,性能优与Type1;缺点是需要安装1个很大的数据库客户端开发包、非可移植性、数据库升级可能要修改客户端API,线程不安全等等。
Type 3: All Java/Net-protocol driver(网络协议驱动程序)
该驱动的模式
应用程序→JDBC Driver→Java中间件→Database
这是很少使用的一种java连接数据库方式,他需要在应用程序和数据库之间架设一个中间层,应用程序跟中间层打交道,无需关心后面是何种数据库。
这种驱动就是根据我们熟悉的3层结构建立的,JDBC先把对数据库的访问请求传递给网络上 的中间件服务器,中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用传递给数据库服务器。
这种驱动是基于server的,因此不需要客户端加载数据库厂商提供的代码库。并在执行效率和可升级方面都比较不错。
Type 4: All Java/Native-protocol driver (Pure)(本地协议驱动程序)
该驱动的模式
应用程序→JDBC Driver→Database Engine→Database
一般我们平时开发中所用的就是这种方式,唯一的缺点就是不同数据库需要提供不同的驱动jar包。这种驱动不需要把JDBC的调用传递给ODBC或本地数据库接口或中间层服务器,所以Type4的执行效率是最高的。
目前DataDirect还提出了Type5的驱动方式,说是Type4的优化,是一个纯商业产品,提供流行的几种数据库驱动包