想知道爲什麼當我使用它們連接到數據庫時,Class.forName("com.mysql.jdbc.Driver");
和Class.forName("com.mysql.jdbc.Driver").newInstance();
工作。對,不是前者不應該工作,因爲沒有新的實例被創建。然而,它仍然有效。我使用netbeans 6.9.1。感謝您的輸入!JDBC連接 - Class.forName與Class.forName()。newInstance?
10
A
回答
10
Class.forName("xxx")
不創建到數據庫的連接,它只是加載JDBC驅動程序並註冊它,以便後續的DriverManager.getConnection(...)
調用將工作。沒有必要自己實例化驅動程序。
1
使用支持jdbc 4.0的驅動程序,您甚至不需要Class.forName()。 當DriverManager查找驅動程序時,該驅動程序應該具有內置機制以便自動加載, 。
(ref:http://download.oracle.com/javase/6/docs/api/java/sql/DriverManager.html) DriverManager方法getConnection和getDrivers已得到增強以支持Java Standard Edition Service Provider機制。 JDBC 4.0驅動程序必須包含文件META-INF/services/java.sql.Driver。該文件包含java.sql.Driver的JDBC驅動程序實現的名稱。例如,加載my.sql.Driver類中,META-INF /服務/ java.sql.Driver文件需要包含下面的條目:
my.sql.Driver
應用程序不再需要顯式地使用Class.forName()加載JDBC驅動程序。當前使用Class.forName()加載JDBC驅動程序的程序將繼續工作而不進行修改。
相關問題
- 1. 的Class.forName( 「com.mysql.jdbc.Driver」)。的newInstance()
- 2. 的Class.forName的newInstance從Grails的
- 3. 在JDBC使用Class.forName
- 4. 的ClassNotFoundException中的Class.forName( 「com.mysql.jdbc.Driver」)。的newInstance(與Java applet的
- 5. 的Java的Class.forName,JDBC連接加載驅動
- 6. jdbc連接「替代Class.forname的驅動程序加載」
- 7. Class.forName(「org.postgresql.Driver」)error
- 8. 的Class.forName(Driver.class)
- 9. 是否需要Class.forName()機制?
- 10. Java Class.forName問題
- 11. Class.forName()如何工作?
- 12. 的Class.forName()與直接類加載
- 13. 的Class.forName異常
- 14. ClassLoader和Class.forName()
- 15. 通過的Class.forName
- 16. Spring with class.forname()
- 17. Class.forName轉換
- 18. Java Class.forName失敗
- 19. 德比EmbeddedDriver沒有的Class.forName
- 20. 的Class.forName()和ClassNotFoundException的
- 21. Class.forName(...)Vs. Thread.currentThread.getContextClassLoader.loadClass(...)行爲
- 22. 在的Class.forName在J2ME
- 23. 的Class.forName似乎仍然需要
- 24. SQL服務器中的Class.forName
- 25. android Class.forName拋出異常
- 26. MySQL JDBC連接
- 27. 在Java中,連接到mysql,Class.forName的含義是什麼?
- 28. 爲什麼在db連接類中寫入class.forname(com.mysql.jdbc.Driver)?
- 29. Class.forName在嘗試連接到MySQL數據庫時不起作用
- 30. Class.forName的Gradle等價物
謝謝!最後一個qn-如果你實例化它,那麼後續的DriverManager.getConnection(..)將不會再次實例化它,對嗎?只有當你沒有在第一步中實例化它時,它纔會這樣做? – OckhamsRazor 2011-01-09 16:37:47