JDBC驱动类型
一下内容引用自http://wiki.jikexueyuan.com/project/jdbc/drive-types.html:
一、什么是JDBC驱动程序?
JDBC驱动实现了JDBC API中定义的接口,该接口用于与数据库服务器进行交互。
例如,使用JDBC驱动程序可以打开数据库连接,并通过发送SQL或数据库命令,然后通过Java接收结果。
java.sql包中附带的JDK,包含了定义各种类与他们的行为和实际实现,这些类都在第三方驱动程序中完成。第三方供应商在他们的数据库驱动程序中都实现了java.sql.Driver接口。
二、JDBC驱动程序类型
JDBC驱动程序的实现,因为各种各样的操作系统和Java运行在硬件平台的不同而不同。Sun公司将实现类型分为四类:类型1,2,3,4,其解释如下:
1、类型1:JDBC-ODBC桥驱动程序:
在类型1驱动程序中,一个JDBC桥接器是用来访问安装在每个客户机上的ODBC驱动程序。为了使用ODBC,需要在目标数据库上配置系统数据源名称(DSN)。
当Java刚出来时,这是一个很有用的驱动程序,因为大多数的数据库只支持ODBC访问,但现在此类型的驱动程序仅适用于实验用途或在没有其他选择的情况。

自带JDK 1.2中的JDBC-ODBC桥是这类驱动程序的一个很好的例子。
2、类型2:JDBC-Native API
在类型2驱动程序中,JDBC API调用转换成原生的C/C++ API调用,这对于数据库来说具有唯一性。这些驱动程序通常由数据库供应商提供,并和JDBC-ODBC桥驱动程序同样的方式使用。该供应商的驱动程序必须安装在每台客户机上。
如果改变了当前数据库,必须改变原生API ,因为它是具体到某一个数据库,并且他们大多已经失效了。即使这样用类型2驱动程序也能提高一些速度,因为他消除了ODBC的开销。

Oracle调用接口(OCI)驱动程序是一个类型2驱动程序的示例。
3、类型3:JDBC-Net纯Java
在类型3驱动程序中,一般用三层方法来访问数据库。JDBC客户端使用标准的网络套接字与中间件应用服务器进行通信。套接字的相关信息被中间件应用服务器转换为数据库管理系统所要求的的调用格式,并转发到数据库服务器。
这种驱动程序是非常灵活的,因为它不需要在客户端上安装代码,而且单个驱动程序能提供访问多个数据库。

可以将应用服务器作为一个JDBC“代理”,这意味着它会调用客户端应用程序。因此,需要一些有关服务器配置方面的知识,这样可以高效地使用此驱动程序类型。
应用服务器可能使用类型1,2,或4驱动程序与数据库进行通信,了解它们的细微之处将会很有帮助。
4、类型4:100%纯Java
在类型4驱动程序中,一个纯粹的基于Java的驱动程序通过socket连接与供应商的数据库进行通信。这是可用于数据库的最高性能的驱动程序,并且通常由供应商自身提供。
这种驱动器是非常灵活的,不需要在客户端或服务端上安装特殊的软件。此外,这些驱动程序是可以动态下载的。

MySQL Connector/J的驱动程序是一个类型4驱动程序。因为它们的网络协议的专有属性,数据库供应商通常提供类型4的驱动程序。
三、该使用哪种驱动程序?
如果正在访问一个数据库,如Oracle,Sybase或IBM,首选的驱动程序是类型4。
如果Java应用程序同时访问多个数据库类型,类型3是首选的驱动程序。
类型2驱动程序是在数据库没有提供类型3或类型4驱动程序时使用的。
类型1驱动程序不被认为是部署级的驱动程序,它存在的目的通常仅用于开发和测试。
JDBC驱动类型的更多相关文章
- JDBC驱动的四种类型
Java中的JDBC驱动可以分为四种类型,包括JDBC-ODBC桥.本地API驱动.网络协议驱动和本地协议驱动. JDBC驱动类型一.JDBC-ODBC桥 JDBC-ODBC 桥 是sun公司提供的, ...
- JDBC 学习笔记(二)—— 详解 JDBC 的四种驱动类型
JDBC 有四种驱动类型,分别是: JDBC-ODBC 桥(JDBC-ODBC bridge driver plus ODBC driver) 本地 API 驱动(Native-API partly ...
- JDBC驱动自身问题引发的FullGC
公众号HelloJava刊出一篇<MySQL Statement cancellation timer 故障排查分享>,作者的某服务的线上机器报 502(502是 nginx 做后端健康检 ...
- Java JDBC 驱动 MySQL
MySQL: 1>下载地址:http://www.mysql.com/products/connector/ 2> //jdbc:[数据库类型]://[ip地址]:[端口号]/[数据库名] ...
- JDBC驱动程序类型
JDBC驱动程序是什么? JDBC驱动程序在JDBC API中实现定义的接口,用于与数据库服务器进行交互. 例如,使用JDBC驱动程序,可以通过发送SQL或数据库命令,然后使用Java接收结果来打开数 ...
- Atitit.自定义jdbc驱动 支持jsql
Atitit.自定义jdbc驱动 支持jsql 1. 为什么需要自定义驱动1 1.1. 透明分库分表1 1.2. 自定义数据库的接口.比如大数据文档文件类型的数据库,数据存储引擎2 2. 整个文章分 ...
- [Java] Oracle的JDBC驱动的版本说明
classes12.jar,ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别,之间的差异 作者:赵磊 博客:http://elf8848.iteye.com 来源:http:/ ...
- IDEA用Maven连接MySQL的jdbc驱动,并操作数据库
1.在IDEA里创建Maven项目 1.1.点击Create New Project 1.2.选择Maven,JDK这里用的是1.8,点击Next 1.3.填入“组织名”.“项目名”,版本是默认 ...
- IDEA导入MySQL的jdbc驱动,并操作数据库
将MySQL的jdbc驱动,导入IDEA的方式,虽然也能连接并且操作数据库,但并不推荐这种方式,推荐使用Maven工程的方式:https://www.cnblogs.com/dadian/p/1193 ...
随机推荐
- http的请求与响应-----content-type
content-type 指请求消息头的中请求消息数据的格式 有三种用法 第一种:设置在request header的参数中 js中可以在发送请求前在请求消息头中设置content-typevar x ...
- nginx负载均衡浅析
熟悉Nginx的小伙伴都知道,Nginx是一个非常好的负载均衡器.除了用的非常普遍的Http负载均衡,Nginx还可以实现Email,FastCGI的负载均衡,甚至可以支持基于Tcp/UDP协议的各种 ...
- php自动加载函数
含义:将函数注册到SPL __autoload函数栈中.如果该栈中的函数尚未激活,则激活它们. 先看__autoload 函数 printit.class.php <?php class PRI ...
- C#方法参数关键字
一.params关键字 prams告诉函数的调用者,该函数的参数数量是可变,如果调用函数的参数标识了params关键字,那么我们可以使用逗号分割的参数或者一个数组来作为参数: 1.这里只能是数组,Li ...
- 【经验分享】IMX6开发板编译问题及解决方法
本文转自迅为IMX6开发板售后讨论群,分享给大家~物理主机 win10 64 位专业版.虚拟机 VM12 Pro.开发环境采用迅为提供的开发环境:Ubuntu12.04.2 .镜像采用最新的:iTOP ...
- druid数据库连接池整合到SpringMvc
1.maven项目加入相关的依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>dru ...
- Vim中文编码问题
1.影响中文编码的设置项 encoding(enc):encoding是Vim的内部使用编码,encoding的设置会影响Vim内部的Buffer.消息文字等.在 Unix环境下,encoding的默 ...
- webstorm 创建es6项目 babel 转 es5
node 安装 webstorm 安装 略过 npm install -y //生成package.json npm install babel-cli -g //全局安装babel-cli npm ...
- CAD设置背景图片(com接口)
把图片作为背景图片可见但是不能编辑操作. 主要用到函数说明: _DMxDrawX::DrawImageToBackground 绘光栅图到背景.详细说明如下: 参数 说明 BSTR sFileName ...
- 初始化react项目
react脚手架 npm install -g create-react-app 国内npm一般下载比较慢或者是常出现下载失败的情况,我们可以指定下载的仓库: npm install -g creat ...