想知道为什么当我使用它们连接到数据库时,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