首頁 > 資料庫 > mysql教程 > 自從 Java 6 以來,Class.forName(JDBC_DRIVER) 真的過時了嗎?

自從 Java 6 以來,Class.forName(JDBC_DRIVER) 真的過時了嗎?

Barbara Streisand
發布: 2025-01-05 01:49:44
原創
263 人瀏覽過

Is Class.forName(JDBC_DRIVER) Really Obsolete Since Java 6?

Java 6 中不再需要Class.forName(JDBC_DRIVER)

本文討論了據稱消除註冊JDBC 驅動程式的需要從Java 6 開始使用Class.forName(JDBC_DRIVER)。這個假設源自於這樣的信念:DriverManager 依賴系統屬性「jdbc.drivers」來尋找適當的驅動程式。

但是,列印System.getProperty("jdbc.drivers") 的值回傳null,讓使用者困惑為什麼他們的應用程式繼續正常運作.

答案

儘管沒有「jdbc.drivers」系統屬性與此屬性無關。 Java 6 引入了服務提供者的概念,這使得 JVM 能夠在啟動時自動偵測已知介面的實作。

遵循此機制的 JDBC 驅動程式會由 DriverManager 自動註冊,因此無需 Class.forName() 。但是,這只適用於驅動程式支援服務提供者註冊的情況。

要啟動服務註冊,驅動程式必須在其 JAR 檔案的 META-INF 目錄中包含一個名為「services」的目錄。此目錄應包含一個名為「java.sql.Driver」的文字文件,該文件指定 JDBC 驅動程式的實作類別。

以上是自從 Java 6 以來,Class.forName(JDBC_DRIVER) 真的過時了嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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