我注意到JDBC有不同的驱动程序,如:
为什么他们得到类型1,类型2等名称?有什么逻辑吗?
答案 0 :(得分:22)
类型编号说明驱动程序实际如何与数据库通信。
答案 1 :(得分:9)
我相信它可以追溯到Sun的原创(1997)intro to JDBC:
我们知道的JDBC驱动程序 此时一般都适合其中之一 四类:
JDBC-ODBC桥加ODBC驱动程序:JavaSoft桥产品 通过ODBC驱动程序提供JDBC访问。 注意ODBC二进制代码,并在 很多情况下数据库客户端代码必须 在每台客户机上加载 使用此驱动程序。结果,这个 那种司机是最合适的 客户端的企业网络 安装不是主要问题, 或者为应用服务器代码编写 在Java中采用三层架构。
Native-API部分Java驱动程序:这种驱动程序转换JDBC 调用客户端API上的调用 Oracle,Sybase,Informix,DB2或 其他DBMS。请注意,像桥一样 司机,这种风格的司机需要 加载一些二进制代码 每台客户机。
JDBC-Net纯Java驱动程序:此驱动程序将JDBC调用转换为 与DBMS无关的网络协议 然后通过转换为DBMS协议 一台服务器。这个网络服务器中间件 能够连接其纯Java 客户到许多不同的数据库。 使用的具体协议取决于 供应商。一般来说,这是 最灵活的JDBC替代品。它是 可能是所有这些供应商 解决方案将提供产品 适合内网使用。为了 对于这些产品也支持 互联网接入,他们必须处理 额外的安全要求, 通过防火墙访问,等等 第四,网络强加的。
- 醇>
Native-protocol纯Java驱动程序:这种驱动程序转换 JDBC调用网络协议 由DBMS直接使用。这允许一个 从客户端机器直接调用 DBMS服务器并且非常出色 内部网访问解决方案。以来 许多这些协议都是 专有的,数据库供应商 他们自己将是主要来源。 几个数据库供应商都有这些 进展。
期望是最终的 驱动程序类别3和4将是 从中访问数据库的首选方法 JDBC。司机类别1和2是 直接纯净的临时解决方案 Java驱动程序尚不可用。 有可能的变化 类别1和2(未显示在 下表)需要连接器, 但这些通常不太理想 解决方案。类别3和4提供 Java的所有优点,包括 自动安装(例如, 用一个下载JDBC驱动程序 使用它的小程序。)
请注意,它们实际上并没有将它们命名为类型1,2,3和4,而是JDBC-ODBC桥接加ODBC驱动程序,Native-API部分Java驱动程序,JDBC-Net纯Java驱动程序和Native-protocol纯Java驱动程序。每个名字都是满口的,所以人们立即开始用他们的号码来引用它们。
答案 2 :(得分:4)
这些数字不是很有用。我发现按照以下方式思考它会更有用:
我永远记不住这些数字,但当有人说“我们在这里使用4型驱动程序”时,我可以问两个是 - 没有问题可以知道他们在谈论什么。
答案 3 :(得分:0)
http://en.wikipedia.org/wiki/JDBC_driver
似乎没有任何逻辑,只是简单的懒惰我猜!
更新:问题是是否有一些逻辑来调用类型1,类型2等而不是调用类型apple,类型橙色:)。据我所知,驱动程序类型不同,根据情况工作/不工作,但为什么名称“Type 1”而不是“Type JDBC-ODBC”或“Type JO”没有理由AFAIK。
答案 4 :(得分:0)
简而言之,每个Type都使用不同的策略,并且对于不同类型的实现更有效。我不认为这是懒惰。我认为能够更轻松,更清楚地找出哪种类型最适合您的特定情况。