在JDBC中,我们使用
Class.forName(“ com.microsoft.sqlserver.jdbc.SQLServerDriver”)。newInstance();
将对象加载到内存中的方法。然后,当我们使用DriverManager类获得与Sql Server的连接时,DriverManager会自动使用内存中加载的驱动程序集中的适当驱动程序。可以将DriverManager概念与.net中使用的提供程序设计模式进行比较吗?如果不是,那我们到底是什么意思
Class.forName(“ com.microsoft.sqlserver.jdbc.SQLServerDriver”)
方法,为什么不使用new关键字创建sql服务器驱动程序类的对象?
最佳答案
Class.forName("XXXDriver")
调用XXXDriver的静态块。
通常,静态块调用DriverManager.registerDriver(new XXXDriver())
将其自身注册到DriverManager
。
就像是:
public class XXXDriver implements Driver{
static{
//Be invoked by Class.forName("XXXDriver")
DriverManager.registerDriver(new XXXDriver())
}
...
}