Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDBC驱动程序类型号之间的差异_Java_Sql_Database_Jdbc_Drivers - Fatal编程技术网

Java JDBC驱动程序类型号之间的差异

Java JDBC驱动程序类型号之间的差异,java,sql,database,jdbc,drivers,Java,Sql,Database,Jdbc,Drivers,我注意到JDBC有不同的驱动程序,如: 类型1驱动器 第二类司机等。。输入4 为什么他们会得到像1型,2型等这样的名字。?有什么逻辑吗? 似乎没有任何逻辑,我猜只是单纯的懒惰 更新:问题是是否有一些逻辑将其称为类型1、类型2等,而不是称为类型apple、类型orange:)。我知道驱动程序类型是不同的,并且根据具体情况而工作/不工作,但是为什么名称“Type 1”而不是“Type JDBC-ODBC”或“Type JO”没有任何原因。简而言之,每种类型使用不同的策略,对于不同类型的实现效果更好。

我注意到JDBC有不同的驱动程序,如:

  • 类型1驱动器
  • 第二类司机等。。输入4
  • 为什么他们会得到像1型,2型等这样的名字。?有什么逻辑吗?

    似乎没有任何逻辑,我猜只是单纯的懒惰


    更新:问题是是否有一些逻辑将其称为类型1、类型2等,而不是称为类型apple、类型orange:)。我知道驱动程序类型是不同的,并且根据具体情况而工作/不工作,但是为什么名称“Type 1”而不是“Type JDBC-ODBC”或“Type JO”没有任何原因。简而言之,每种类型使用不同的策略,对于不同类型的实现效果更好。我不认为这是懒惰。我认为这是为了能够更容易、更清楚地选择最适合您的特定情况的类型。

    这些数字信息量不大。我发现按照以下思路思考更有用:

    • 本地API(1,2)与网络协议(3,4)
    • 数据库独立(奇数)与数据库特定(偶数)

    我永远记不起数字,但当有人说“我们这里使用的是4型驱动程序”时,我可以问两个是非问题,以了解他们在说什么。

    类型数字告诉我们驱动程序实际上是如何与数据库通信的

  • 通过
  • 通过DB供应商特定的API(例如在Windows中的DLL文件上使用)
  • 通过通用网络协议(与TCP/IP协议一起使用)
  • 通过DB供应商特定的网络协议(仍带有套接字)

  • 一般来说(只是巧合),类型号越高,JDBC驱动程序的性能越好。

    我相信它可以追溯到Sun最初的版本(1997):

    我们知道的JDBC驱动程序 在这个时候一般适合一个 四类:

  • JDBC-ODBC桥加ODBC驱动程序:JavaSoft桥产品 通过ODBC驱动程序提供JDBC访问。 请注意,ODBC二进制代码和 很多情况下数据库客户端代码,必须 在每个 使用此驱动程序。因此, 哪种类型的驱动程序最适合 一个企业网络,其中客户端 安装不是主要问题, 或用于编写应用程序服务器代码 在Java中,采用三层体系结构

  • 本地API部分是Java驱动程序:这种驱动程序转换JDBC 对客户端API上的调用的调用 Oracle、Sybase、Informix、DB2或 其他数据库管理系统。注意,就像桥一样 驱动程序,这种类型的驱动程序需要 可以加载一些二进制代码 每台客户机

  • JDBC Net纯Java驱动程序:该驱动程序将JDBC调用转换为 独立于数据库管理系统的网络协议 然后通过 服务器。这个网络服务器中间件 能够连接其纯Java 客户机连接到许多不同的数据库。 所使用的特定协议取决于 卖主。一般来说,这是 最灵活的JDBC替代方案。它是 很可能所有的供应商 解决方案将提供产品 适合内联网使用。整齐 为这些产品也提供支持 互联网接入,他们必须处理 安全方面的额外要求, 通过防火墙访问,等等 第四,网络强加的

  • 本机协议纯Java驱动程序:这种驱动程序转换 JDBC调用网络协议 数据库管理系统直接使用。这允许 从客户端计算机直接调用到 DBMS服务器是一个优秀的 内部网访问解决方案。自从 这些协议中有许多是 专有的,数据库供应商 它们本身将是主要来源。 几家数据库供应商都有这样的产品 进步

  • 人们的期望是,最终 第3类和第4类驾驶员将是 从数据库访问数据库的首选方式 JDBC。驾驶员类别1和2为 临时解决方案,其中直接 Java驱动程序还不可用。 上有可能的变化 类别1和类别2(图中未显示 (下表)需要一个连接器, 但这些通常不太可取 解决。第3类和第4类优惠 Java的所有优点,包括 自动安装(例如, 使用 使用它的小程序)



    请注意,他们实际上并没有将它们命名为类型1、2、3和4,而是命名为JDBC-ODBC桥加ODBC驱动程序、本机API部分Java驱动程序、JDBC Net纯Java驱动程序和本机协议纯Java驱动程序。每个名字都是满嘴的,所以人们立即开始用他们的号码来称呼他们。

    这是有道理的——了解司机类型有助于了解司机在什么情况下工作。例如,如果您不能部署本机代码(比如在小程序中),使用本机代码的驱动程序将无法工作。遗憾的是,Oracle似乎没有保留到旧Sun文档的链接。特定于供应商的意思是本机有一点帮助