能够连接到hive db而无需加载HiveDriver类

时间:2016-08-05 12:48:59

标签: java hive

我能够连接到hive数据库并对其执行查询而无需加载org.apache.hive.jdbc.HiveDriver?这怎么发生的? 我们知道如果我们想首先连接到任何数据库,我们需要使用class.forname加载驱动程序("完全限定的驱动程序类名称")。但在我的情况下,我能够连接到Hive数据库而无需编写上述代码。下面是我的代码。 Connection conn = DriverManager.getConnection(url,username,password);

1 个答案:

答案 0 :(得分:0)

"我们知道如果我们想先连接到任何数据库,我们需要加载驱动程序" - 好吧,你一定要更新那个知识...

摘自官方Oracle / Sun文档:

  

在以前的JDBC版本中,要获得连接,首先必须这样做   通过调用方法Class.forName来初始化JDBC驱动程序   
...
在类路径中找到的任何JDBC 4.0驱动程序都是   自动加载。 (但是,您必须手动加载任何驱动程序   在JDBC 4.0之前使用方法Class.forName

  

作为初始化的一部分,DriverManager类将尝试   加载jdbc.drivers系统中引用的驱动程序类   属性。这允许用户自定义所使用的JDBC驱动程序   他们的应用程序
... ...用于DriverManager方法    getConnection getDrivers 已得到增强,可支持Java Standard Edition Service Provider机制。 JDBC 4.0驱动程序   必须包含文件META-INF/services/java.sql.Driver。这个文件   包含JDBC驱动程序实现的名称   java.sql.Driver
...
应用程序不再需要明确表达   使用Class.forName()加载JDBC驱动程序。现有的程序   目前使用Class.forName()加载JDBC驱动程序将继续   没有修改的工作