Class.forName
用於實例化驅動程序類。 Class.forName
沒有對象,它只是實例化驅動程序類實例。如果是這種情況,DriverManager類將如何獲取實例化驅動程序類的引用?DriverManager如何獲取jdbc驅動程序類的實例
3
A
回答
2
的Class.forName 負載和註冊驅動程序( 「X」)導致名爲X到類動態加載, 基本上,對forName(「X」)的調用會導致名爲X的類被初始化(即,JVM在類加載後執行其所有靜態塊)。
要回答你的問題JVM執行靜態塊和驅動程序本身向DriverManager註冊。
此過程在下面的鏈接很好解釋: http://www.xyzws.com/Javafaq/what-does-classforname-method-do/17
+0
鏈接很好的解釋了靜態塊,謝謝。 – cherit
0
當getConnection方法被調用時,DriverManager的將 試圖從在那些在 初始化加載和那些加載明確地使用相同的類加載器 作爲現行小應用程序定位一個合適的驅動程序或應用。在初始化:: DriverManager類加載
驅動程序將嘗試通過調用Class.forName加載在「jdbc.drivers中」系統屬性中引用的驅動程序類
驅動程序顯式加載::(「driver.name」 );
0
請參閱接口的javadoc。
它說,
當一個驅動程序類被加載,它應該創建自己 一個實例並用DriverManager註冊。這意味着用戶可以通過調用
的Class.forName( 「foo.bah.Driver」)
相關問題
- 1. JDBC DriverManager驅動程序選擇
- 2. 如何獲取hibernate3-maven-plugin hbm2ddl來查找JDBC驅動程序?
- 3. 驅動程序實例在測試類
- 4. 無法獲得驅動程序實例
- 5. Sun JDBC ODBC驅動程序或MSSQL JDBC驅動程序
- 6. 如何從測試的類中刪除實例「驅動程序」
- 7. Flyway無法實例化jdbc驅動程序
- 8. 未找到JDBC驅動程序類:com.mysql.jdbc.Driver
- 9. 未找到JDBC驅動程序類:oracle.jdbc.OracleDriver
- 10. JDBC驅動程序類型1和2
- 11. 無法加載JDBC驅動程序類
- 12. 無法加載JDBC驅動程序類
- 13. Clickhouse JDBC驅動程序類名稱
- 14. 如何安裝SQLite JDBC驅動程序?
- 15. 執行查詢後,PostgreSQL JDBC驅動程序何時獲取行?
- 16. 獲取JBOSS啓動錯誤無法實例化驅動程序類「oracle.jdbc.OracleDriver」
- 17. MySQL jdbc驅動程序
- 18. 加載JDBC驅動程序
- 19. 5型JDBC驅動程序
- 20. jdbc odbc驅動程序
- 21. Tomcat和JDBC驅動程序
- 22. 開發JDBC驅動程序
- 23. 關於JDBC驅動程序
- 24. JDBC驅動程序問題
- 25. 使用Java驅動程序獲取Mongo實例版本
- 26. 如何修復「無法實例化JDBC驅動程序」Flyway命令行錯誤?
- 27. 如何從節點mongo本機驅動程序獲取db的實例?
- 28. 如何獲取驅動程序名稱?
- 29. 無法在Tomcat環境下獲取MySQL的JDBC驅動程序
- 30. JDBC驅動程序類與SQL Server在我的Java代碼JDBC驅動程序類2008
不過請注意,這是沒有必要的JDBC 4.0驅動程序,因爲他們應該通過META-INF /服務註冊自己:HTTP://文檔.oracle.com/javase/7/docs/api/java/sql/DriverManager.html – Puce