2016-08-05 35 views
0

我能夠連接到配置單元數據庫並執行查詢,而無需加載org.apache.hive.jdbc.HiveDriver?這怎麼發生的? 我們知道,如果我們想要首先連接到任何數據庫,我們需要使用class.forname(「完全限定的驅動程序類名稱」)加載驅動程序。但在我的情況下,我能夠連接到配置單元db而不寫上述代碼。下面是我的代碼。 Connection conn = DriverManager.getConnection(url,username,password);能夠連接到配置單元數據庫,而無需加載HiveDriver類

回答

0

「我們知道如果我們要連接到任何數據庫,首先我們需要加載驅動程序」 - 好了,你一定要更新知識......

摘錄Oracle官方/ Sun文檔:

在要獲得連接,您首先必須通過調用方法Class.forName
...
來初始化您的JDBC驅動程序。在您的類路徑中找到的任何JDBC 4.0驅動程序都會自動加載 。 (但是,您必須手動加載 之前,JDBC 4.0任何驅動程序與方法Class.forName

作爲其初始化的一部分,DriverManager類會嘗試 負載在jdbc.drivers系統 屬性中引用的驅動程序類。這允許用戶定製由 他們的應用程序
...
類DriverManager方法 的getConnectiongetDrivers已得到增強,支持Java標準版服務提供商機制使用的JDBC驅動程序。 JDBC 4.0驅動程序 必須包含文件META-INF/services/java.sql.Driver。此文件 包含JDBC驅動程序的實現名稱 java.sql.Driver
...
應用程序不再需要明文加載 使用Class.forName()加載JDBC驅動程序。這 目前加載使用Class.forName(JDBC驅動程序)現有項目將繼續 工作無需修改

+0

感謝參孫吵醒我。已經有三年沒有涉及JDBC了。 :) –

相關問題