首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我们不能使用mysql连接的驱动程序类型?

为什么我们不能使用mysql连接的驱动程序类型?
EN

Stack Overflow用户
提问于 2017-02-11 14:00:41
回答 1查看 93关注 0票数 1

以下是我的代码

代码语言:javascript
复制
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/employee","root","root");

当我们与Oracle驱动程序连接时,我们指定驱动程序类型,即(type-1,type-2,type-3,type-4")

代码语言:javascript
复制
Class.forName("jdbc.oracle.driver.JdbcOracleDriver");
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:XE","System","System");

为什么我们不为MySQL数据库这样做呢?

EN

回答 1

Stack Overflow用户

发布于 2017-02-12 11:56:44

使用jdbc,我们不会在代码中指定驱动程序类型。我们指定驱动程序类和连接字符串。通过观察这两个,你可以(也可能不)推断出类型。在您的示例中,对于mysql和oracle,您都使用了它们的Type-4驱动程序。

当您看到一些包含odbc的连接字符串或驱动程序名称时,您可以非常确定这是类型1驱动程序。几乎所有的数据库都可以使用odbc。在您的代码中,sql将对db提供程序保持相当中立。但这是最慢的方法。

类型2驱动程序很少见。Mysql没有。甲骨文有一个OCI驱动程序,您可以使用它来代替thin。如果使用oci驱动程序,则必须在系统上使用不同的连接字符串、不同的驱动程序名称、不同的jar和一些额外的安装/配置。这些驱动程序提供了一些oracle thin上通常没有的额外功能,例如。群集。一些数据库,如SQLite,只有T-2驱动程序,没有其他驱动程序。

我没有遇到任何Type-3驱动程序,所以我不能智能地使用它们。

Type4是连接到数据库的最常见方式。你的两个例子都是同一类型的。这些驱动程序只需要在您的系统上进行最低限度的安装/配置,能够提供通用的sql子集(如T1)和特定于数据库的功能(如T2)。作为纯T2,您可以非常确定您的代码将在不同的操作系统(_un_like java )上运行良好。

正如您所看到的,没有简单的方法来推断驱动程序的类型。大多数情况下,这甚至无关紧要。趋势是从odbc转向T4。T2还在做一些高性能的事情,但很少见。

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42172820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档