Class.forName()的作用

    我们在加载数据库驱动的时候,一般会调用

Class.forName("com.mysql.jdbc.Driver");

    它的作用其实是获得数据库驱动的Class对象。

定义:

Class.forName返回与给定的字符串名称相关联接口的Class对象。

Class.forName是一个静态方法,同样可以用来加载类。该方法有两种形式:Class.forName(String name, boolean initialize, ClassLoader loader)和 Class.forName(String className)。第一种形式的参数 name表示的是类的全名;initialize表示是否初始化类;loader表示加载时使用的类加载器。第二种形式则相当于设置了参数 initialize的值为 true,loader的值为当前类的类加载器。

为什么不需要实例?

    Class.forName方法只是加载Class对象,并没有获取驱动实例。不过,在JDBC规范中明确要求这个Driver类必须向DriverManager注册自己,即任何一个JDBCDriver的Driver类的代码都必须类似如下:  
       
   public classMyJDBCDriver implements Driver { 
    static{ 
       DriverManager.registerDriver(new MyJDBCDriver()); 
   } 
   } 

    既然在静态初始化器的中已经进行了注册,所以我们在使用JDBC时只需要Class.forName(XXX.XXX);就可以了。


猜你喜欢

转载自blog.csdn.net/u010771890/article/details/77542482
今日推荐