Java JDBC驱动程序类型1和2

Java JDBC驱动程序类型1和2,java,jdbc,Java,Jdbc,为什么我们不能在web应用程序开发中使用JDBC类型1(JDBC-ODBC桥驱动程序)和类型2驱动程序 这两个驱动程序需要一些客户端安装 我对客户机感到困惑,因为当我们在服务器上安装所有特定于驱动程序的东西时,客户机需要哪些额外的东西。I型JDBC-ODBC桥驱动程序不推荐用于生产应用程序。这是一个Java1.0工件,它允许通过ODBC进行即时互连以进行开发,仅此而已 II型JDBC驱动程序需要本机代码才能工作。它使用特定关系数据库的客户端本机库。您必须能够使用LD_LIBRARY_PATH或其

为什么我们不能在web应用程序开发中使用JDBC类型1(JDBC-ODBC桥驱动程序)和类型2驱动程序

这两个驱动程序需要一些客户端安装


我对客户机感到困惑,因为当我们在服务器上安装所有特定于驱动程序的东西时,客户机需要哪些额外的东西。

I型JDBC-ODBC桥驱动程序不推荐用于生产应用程序。这是一个Java1.0工件,它允许通过ODBC进行即时互连以进行开发,仅此而已

II型JDBC驱动程序需要本机代码才能工作。它使用特定关系数据库的客户端本机库。您必须能够使用LD_LIBRARY_PATH或其他环境变量指向这些库


您需要一个类型IV JDBC驱动程序,它是100%纯Java,不需要客户端安装。您所需要的只是类路径中的一个JAR文件。

对于生产应用程序,不建议使用I型JDBC-ODBC桥驱动程序。这是一个Java1.0工件,它允许通过ODBC进行即时互连以进行开发,仅此而已

II型JDBC驱动程序需要本机代码才能工作。它使用特定关系数据库的客户端本机库。您必须能够使用LD_LIBRARY_PATH或其他环境变量指向这些库

您需要一个类型IV JDBC驱动程序,它是100%纯Java,不需要客户端安装。您所需要的只是类路径中的一个JAR文件

为什么我们不能在web应用程序开发中使用JDBC类型1(JDBC-ODBC桥驱动程序)和类型2驱动程序

没有什么可以阻止任何人在web应用程序中使用类型1和类型2驱动程序。但不建议这样做(见第三段)

类型1和类型2驱动程序都不能跨平台移植。虽然乍一看,这似乎不是一个问题,但它肯定是一个问题。特别是如果单元测试在一个平台上运行,而验收测试和生产环境则是另一个平台。在一个环境中看似成功的代码可能在另一个环境中失败

然而,在web应用程序中不使用它们的最重要原因是存在本机代码。本机代码中的某些故障将导致JVM崩溃,这是普遍不喜欢的。毕竟,这将导致不必要的停机,当类型4驱动程序可以简单地断开连接并在故障后进行清理,而不会影响应用程序的其余部分时

就客户端设置而言,客户端安装通常取决于所用驱动程序的类型。类型1驱动程序实际上包装了另一个数据库API,如ODBC,因此也需要设置相应的ODBC驱动程序。类型2驱动程序要求DLL或共享对象出现在
java.library.path
中,通常通过设置path或LD_library_path环境变量来实现

为什么我们不能在web应用程序开发中使用JDBC类型1(JDBC-ODBC桥驱动程序)和类型2驱动程序

没有什么可以阻止任何人在web应用程序中使用类型1和类型2驱动程序。但不建议这样做(见第三段)

类型1和类型2驱动程序都不能跨平台移植。虽然乍一看,这似乎不是一个问题,但它肯定是一个问题。特别是如果单元测试在一个平台上运行,而验收测试和生产环境则是另一个平台。在一个环境中看似成功的代码可能在另一个环境中失败

然而,在web应用程序中不使用它们的最重要原因是存在本机代码。本机代码中的某些故障将导致JVM崩溃,这是普遍不喜欢的。毕竟,这将导致不必要的停机,当类型4驱动程序可以简单地断开连接并在故障后进行清理,而不会影响应用程序的其余部分时


就客户端设置而言,客户端安装通常取决于所用驱动程序的类型。类型1驱动程序实际上包装了另一个数据库API,如ODBC,因此也需要设置相应的ODBC驱动程序。类型2驱动程序要求DLL或共享对象出现在
java.library.path
中,通常通过设置path或LD_library_path环境变量来实现。如果可能,类型4是您想要的类型驱动程序。如果可能,类型4是您想要的类型驱动程序。