首页 > 其他分享 >JDBC驱动类型

JDBC驱动类型

时间:2023-04-02 17:15:31浏览次数:43  
标签:JDBC 驱动程序 数据库 ODBC 调用 类型 驱动

1.JDBC-ODBC Bridge Driver

SUN发布JDBC规范时,市场上可用的JDBC驱动程序并不多,但是已经逐渐成熟的ODBC方案使得通过ODBC驱动程序几乎可以连接所有类型的数据源。所以SUN发布了JDBC-ODBC的桥接驱动,利用现成的ODBC架构将JDBC调用转换为ODBC调用,避免了JDBC无驱动可用的窘境,如图2-6所示。但是,由于桥接的限制,并非所有功能都能直接转换并正常调用,而多层调用转换对性能也有一定的影响,除非没有其他解决方案,否则不采用桥接架构。

2.Native API Driver

这类驱动程序会直接调用数据库提供的原生链接库或客户端,因为没有中间过程,访问速度通常表现良好,如图2-7所示。但是驱动程序与数据库和平台绑定无法达到JDBC跨平台的基本目的。在JDBC规范中也是不被推荐的选择。

 

 

 

3.JDBC-Net Driver

这类驱动程序会将JDBC调用转换为独立于数据库的协议,然后通过特定的中间组件或服务器转换为数据库通信协议,主要目的是获得更好的架构灵活性,如图2-8所示。例如,更换数据库时可以通过更换中间组件实现。数据库厂商开发的驱动通常还提供额外的功能,例如高级安全特性等,而且通过中间服务器转换会对性能有一定影响。JDBC领域这种类型驱动并不常见,而微软的ADO.NET是这种架构的典型。

4.Native Protocol Driver

这是最常见的驱动程序类型,开发中使用的驱动包基本都属于此类,通常由数据库厂商直接提供,例如mysql-connector-java,驱动程序把JDBC调用转换为数据库特定的网络通信协议,如图2-9所示。使用网络通信,驱动程序可以纯Java实现,支持跨平台部署,性能也较好。

 

 

 注意:摘要于《mybatis3源码深度解析》

标签:JDBC,驱动程序,数据库,ODBC,调用,类型,驱动
From: https://www.cnblogs.com/daitao-blog/p/17280778.html

相关文章

  • Demo03 数据类型 类型转换 内存溢出
    关键字数据类型java是强类型语言要求变量的使用要严格符合规定,所有变量都要先定义后才能使用 Java的数据类型分为两大类基本类型(primitivetype)引用类型(referencetype)  publicclassDemo02{   publicstaticvoidmain(String[]args){   ......
  • reverse/base64变体类型
    例:【BUU】特殊的BASE64进入main函数后发现rightflag明显是base64加密的结果(补=)随后发现右base64encode函数进入后发现是传统的base64加密方式,猜测是密码表的变体利用shitf+f12查看字符串发现有类似密码表的字符串利用脚本进行解密importbase64outab="ABCDEFGHIJKLMNOP......
  • 你不得不了解的CSS数据类型
    在我之前的开发中,CSS对于我来说,要用什么找什么,对CSS的了解并不算深入;在我刚开始深入学习CSS时,第一个遇到的就是CSS数据类型,我听说过JS、TS的数据类型,CSS怎么也有数据类型?但是随着我对CSS数据类型的了解,CSS的大门也在缓缓为我打开!!!什么是CSS数据类型?引用《CSS新世界》中的介绍:CS......
  • ubuntu安装ch34x驱动,并安装串口调试助手
    1、查看系统自带的ch34x驱动kangxubo@kangxubo-HKNS:/lib/modules/5.19.0-38-generic/kernel/drivers/usb/serial$lsaircable.koftdi_sio.kokobil_sct.kopl2303.kousb_debug.koark3116.kogarmin_gps.komct_u232.koqcaux.ko......
  • 数据类型、变量、常量
    C数据类型​ 在C语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。整数类型下表列出了关于标准整数类型的存储大小和值范围的细节:类型存储大小值范围char1字节-128到12......
  • 变量类型【int/float/str】+占位符使用
    变量类型:int:整形float:浮点数str:字符串占位符:%s,占位字符串%d,占位整形%f,占位浮点数%.2f,保留2位小数占位-f表达式-format#变量+占位符的使用name="AAA"age=8weight=89.7550#占位符使用print("我叫%s,今年%d岁了,体重%.2f斤"%(name,age,weight))#格......
  • chrdev_open --- 通过文件路径,执行驱动设置的open()流程
    open一个字符设备的流程大概是:文件路径=>inode=>chrdev_open()=>(kobj_lookup=>)inode.i_cdev=>cdev.fops.my_chr_open()。所以只要通过VFS找到了inode,就可以找到chrdev_open(),这里我们就来关注一个chrdev_open()是怎么从内核的数据结构中找到我们的cdev并执行其中的my_c......
  • 类型类Type classes(第一部分)类约束 Eq、Ord、Show、Read、Enum、Num、Integral、Float
    类型类Typeclasses是一种定义某种行为的接口。如果类型是类型类的成员,则意味着类型支持并实现了类型类定义的行为。类约束==函数的类型,如下:type(==)(==)::Eqa=>a->a->Bool=>符号定义了一个类约束,==函数接受两个相同类型的形参,并返回Bool类型。这两个形参的类型......
  • 类型、类型变量、多态函数
    类型Haskell有一个静态类型系统,每个表达式的类型在编译时是已知的,这将产生更安全的代码与Java或C不同,Haskell有类型推断,不用显式编写类型理解类型系统是掌握Haskell的一个非常重要的部分:type命令可以检查表达式的类型,如下:type'a':typeTrue:type"hello":type(True,'......
  • debian 安装Nvidia驱动
    1、下载显卡驱动https://www.nvidia.cn/Download/index.aspx?lang=cn2、关闭nouveau驱动2.1在/etc/modprobe.d/blacklist.conf中添加nouveau到黑名单。vim/etc/modprobe.d/blacklist.conf如下#nouveaublacklistnouveauoptionsnouveaumodeset=03、......