2.6_Database Interface JDBC及驱动类型
JAVA语言参考ODBC,设计专用的数据库连接规范JDBC(JAVA Database Connectivity)。目标是让Java开发人员在编写数据库应用程序时,可以有统一的接口,不依赖特定数据库API,达到"一次开发,适用所有数据库"。
JDBC标准中,把驱动程序分为四种类型:
Type1:JDBC-ODBC BridgeDriver(JDBC-ODBC桥)
SUN发布了JDBC-ODBC的桥连接驱动,利用现成的ODBC架构,将JDBC调用转换为ODBC调用,再由ODBC调用本地数据库驱动代码(数据库厂商提供的数据库操作DLL。如oracle for windows中就是 oci dll文件),如下图:

其特点:不适合intranet/internet的应用方面
Type 2:Native API Driver(本地API驱动)
这类驱动程序会直接调用数据库提供的原生链接库或客户端,因为没有中间过程,访问速度通常表现良好。

其特点:需要在客户端加载数据库DLL,也不适合internet
Type 3: JDBC-Net Driver(网络协议驱动)
这类驱动程序将JDBC调用转换为独立于数据库的协议,然后再通过特定的中间组件或服务器转换为数据库通信协议,主要目的是为了获得更好的架构灵活性。
例如更换数据库时可通过更换中间组件实现,JDBC领域这种类型驱动并不常见,而微软的ADO.NET是这种架构的典型。如下图:

其特点:适合应用程序需要同时连接多个不同类的数据库,且要求并发连接高的。
Type4:Native Protocol Driver(本地协议驱动)
开发中使用的驱动jar包基本都属于此类,通常由数据库厂商直接提供,例如mysql-connector-java,驱动程序把JDBC调用转换为数据库特定的网络通信协议。如下图:

上图是最常见的驱动程序类型,其特点:应用程序可以直接和数据库服务器通讯,执行效率是非常高的。适合应用程序连接单一数据库场景。
2.6_Database Interface JDBC及驱动类型的更多相关文章
- JDBC 学习笔记(二)—— 详解 JDBC 的四种驱动类型
JDBC 有四种驱动类型,分别是: JDBC-ODBC 桥(JDBC-ODBC bridge driver plus ODBC driver) 本地 API 驱动(Native-API partly ...
- Spring JDBC处理CLOB类型字段
以下示例将演示使用spring jdbc更新CLOB类型的字段值,即更新student表中的可用记录. student表的结构如下 - CREATE TABLE student( ID INT NOT ...
- Spring JDBC处理BLOB类型字段
以下示例将演示使用spring jdbc更新BLOB类型的字段值,即更新student表中的可用记录. student表的结构如下 - CREATE TABLE student( ID INT NOT ...
- JDBC 注册驱动,获取连接
jdbc 动力节点视频教程 JDBC编程六步 1.注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库) 2.获取连接 (表示JVM进程和数据库进程之间的通道打开了,属于进程间的通信,重量 ...
- JDBC 常用驱动类及url格式
1. oracle <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</ ...
- JDBC注册驱动的三种方式
JDBC注册驱动的三种方式 1.通过导入的JDBC的驱动包拿到的com.mysql.jdbc.Driver对象,利用java.sql.DriverManager对象的DriverManager.reg ...
- Direct3D驱动类型(DRIVER_TYPE)介绍
之前部门老大叫我查找有关Direct3D使用软件渲染的方法,于是我找到了D3D驱动的类型,并整理如下 一.D3D驱动类型的句法 typedef enum D3D_DRIVER_TYPE { D3D_D ...
- Java笔记4:JDBC纯驱动方式连接Oracle
JDBC纯驱动方式连接Oracle 1 下载Oracle提供的驱动程序包 下载地址: http://www.oracle.com/technetwork/database/enterprise-edi ...
- JDBC驱动类型
一下内容引用自http://wiki.jikexueyuan.com/project/jdbc/drive-types.html: 一.什么是JDBC驱动程序? JDBC驱动实现了JDBC API中定 ...
随机推荐
- Spark-Streaming hdfs count 案例
Streaming hdfs count 需要先启动 hadoop 集群. # 启动 hadoop 集群 start-dfs.sh start-yarn.sh # 查看是否启动成功 # 命令 jps ...
- mysql 唯一键
唯一键特点: 1.唯一键在一张表中可以有多个. 2.唯一键允许字段数据为NULL,NULL可以有多个(NULL不参与比较) //一个表中允许存在多个唯一键,唯一键允许为空,在不为空的情况下,不允许重复 ...
- Eclipse R语言开发环境搭建 StatET插件
StatET 官网 http://www.walware.de/goto/statet Installation 点击菜单栏 help --> Install New Software 配置R语 ...
- Fluent也弹窗
具体步骤见<fluent加载第三方(C++,Fortran等)动态链接库> 我们对导入的动态链接库进行改动 打开VS2013 源代码: #include #ifdef __cplusplu ...
- VMware网络适配器的选择
VMware 提供的网络连接有 5 种,分别是"桥接模式"."NAT 模式"."仅主机模式"."自定义"和"L ...
- Spark(五十三):Spark RPC初尝试使用
基本用法主要掌握一点就行: master slave模式运用:driver 就是master,executor就是slave. 如果executor要想和driver交互必须拿到driver的Endp ...
- Bi-Directional ConvLSTM U-Net with Densley Connected Convolutions
Bi-Directional ConvLSTM U-Net with Densley Connected Convolutions ICCV workshop 2019 2019-09-15 11 ...
- java捕获一个网站页面的全部图片
直接上代码: package com.jeecg.util; import java.io.BufferedReader; import java.io.FileNotFoundException; ...
- vue中使用极验验证码(附demo)
前言: vue中使用极验验证码,最好是在页面渲染的时候(mounted)进行验证码的初始化,然后在初始化回调中绑定触发弹出验证码的事件.这样在点击按钮或者进行特定操作时能够快速的弹出验证码. 关键代码 ...
- 【docker】 yaml.scanner.ScannerError: mapping values are not allowed here in "./docker-compose.yml", line 60, column 35
在启动docker-compose 时候 报错了 命令: docker-compose up -d && docker-compose logs -f 错误代码: 解决 出现这个错误的 ...