首頁 > 資料庫 > mysql教程 > Java 6 及更高版本中的 JDBC 驅動程式註冊是否需要 Class.forName()?

Java 6 及更高版本中的 JDBC 驅動程式註冊是否需要 Class.forName()?

DDD
發布: 2025-01-04 12:56:40
原創
606 人瀏覽過

Is Class.forName() Necessary for JDBC Driver Registration in Java 6 and Later?

DriverManager 驅動程式註冊:Class.forName() 在Java 6 及更高版本中的用法

問題:

問題:

問題:

問題:問題:

從Java 6 開始,不再需要Class.forName(JDBC_DRIVER) JDBC驅動程式註冊?儘管文件建議 jdbc.drivers 系統屬性應提供驅動程式路徑,但列印此屬性會傳回 null。為什麼應用程式仍然可以正常運作?

答案:

Java 6(以及 JDBC4)中 Class.forName() 的消除與 jdbc.drivers 無關財產。 Java 引入了「服務提供者」概念,相容的驅動程式可以在啟動期間向 JVM 自行註冊。

服務提供者註冊:

遵守此標準位置的驅動程式META-INF 目錄中 JAR 檔案內的 services 目錄。該目錄包含一個名為 java.sql.Driver 的文字文件,該文件指定實作類別。
  • 驅動程式偵測:
JVM 自動偵測並註冊實作此介面的驅動程式。這消除了使用 Class.forName() 為相容驅動程式進行明確註冊的需要。 應用程式功能:在提供的範例中,應用程式仍然可以正常運行,儘管System.getProperty("jdbc.drivers") 的null 傳回值如果:使用的驅動程式支援服務提供者註冊。 驅動程式的 JAR 檔案包含所需的服務目錄。

以上是Java 6 及更高版本中的 JDBC 驅動程式註冊是否需要 Class.forName()?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板