这是我的代码
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/employee","root","root");
当我们连接Oracle驱动程序时,我们指定驱动程序类型,即(type-1,type-2,type-3,type-4")
-
说
Class.forName("jdbc.oracle.driver.JdbcOracleDriver");
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:XE","System","System");
为什么我们不为MySQL数据库执行此操作?
答案 0 :(得分:0)
使用jdbc,我们不在代码中指定驱动程序类型。我们指定驱动程序类和连接字符串。通过观察这两个,您可以(或可能不)推断出这种类型。在您的示例中,对于mysql和oracle,您使用的是Type-4驱动程序。
当您看到包含odbc
的某个连接字符串或驱动程序名称时,您可以非常确定这是类型1驱动程序。几乎所有数据库都可以使用odbc。在你的代码中,sql对db provider是相当中立的。但这是最慢的方式。
Type-2驱动程序很少见。 Mysql没有。 Oracle有一个OCI
驱动程序,您可以使用它来代替瘦。如果使用oci驱动程序,则必须在系统上使用不同的连接字符串,不同的驱动程序名称,不同的jar以及一些额外的安装/配置。这些驱动程序提供了oracle thin上常见的一些额外功能,例如。集群。像SQLite这样的数据库只有T-2驱动程序,没有别的。
我没有遇到任何Type-3驱动程序,因此我无法智能地对它们说话。
Type-4是连接数据库的最常用方法。您的两个示例都属于同一类型。这些驱动程序需要在系统上进行最少的安装/配置,能够提供通用的sql子集(如T1)和db特定的功能(如T2)。作为纯java,你可以非常肯定你的代码在不同的os(_un_like T2)中可以正常工作。
如您所见,没有简单的方法来推断驱动程序的类型。大多数时候它甚至都不重要。趋势是远离odbc和T4。 T2中仍然有一些高性能的东西,但很少见。
希望这有帮助