62,614
社区成员
发帖
与我相关
我的任务
分享
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException ex) {
System.err.println(ex.getMessage());
}
class A{
static{
System.out.println("A");
}
}
1.A如何能被打印呢?要么Class.forName("A"),要么new A(),但是这里的A对象并没有什么实际作用,所以推荐使用前者
2.Jdbc规定所有driver,包括sqlServerDriver,mySqlDriver,oracleDriver等都有这么个静态块来初始化DriverManager
做的事简单说就是DriverManager.register(new ADriver()),因为sqlServerDriver等类是由各个数据库厂商写的,DriverManager是原来的Sun写的,用于连接Driver,Sun不知道市面上有哪些Driver,需要你主动告诉它你是谁。
最早版本这是必须的,但是现在的版本由于这些数据库都是已经是常用的了,所以DriverManager内置知道去那里找,但是如果你自己写一个数据库的话或者用那些没有名气的数据库时这个就是必须的。