Class.forName()用来加载数据库驱动的
如:使用jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

解决方案 »

  1.   

    ClassLoader
    负责在运行时查找和装入类文件的类
    与 C 或 C++ 编写的程序不同,Java 程序并不是一个可执行文件,而是由许多独立的类文件组成,每一个文件对应于一个 Java 类。 此外,这些类文件并非立即全部都装入内存,而是根据程序需要装入内存。ClassLoader 是 JVM 中将类装入内存的那部分。 而且,Java ClassLoader 就是用 Java 语言编写的。这意味着创建您自己的 ClassLoader 非常容易,不必了解 JVM 的微小细节。 
      

  2.   

    Class.forName()将自动创建一个数据库driver的实例
    然后就可以用这是实例去连接到相应的dbms上对数据库进行操作
    Connection con = DriverManager.getConnection(url,"myLogin", "myPassword");
      

  3.   

    Class.forName()得到一个Class的实例,但是很慢。Class.forName("java.lang.String") == String.classClass.forName("String")会找不到类。
      

  4.   

    Class.forName()有两种形式:
    public static Class forName(String name)throws ClassNotFoundExceptionpublic static Class forName(String name,
                                boolean initialize,
                                ClassLoader loader)
                         throws ClassNotFoundException
    第一种形式利用JVM的内置BootTrap ClassLoader来进行类的加载和初始化类。BootTrap ClassLoader是所有ClassLoader的Parent ClassLoader.
    第二种形式用指定的ClassLoader进行加载。只有当initialize是true而且这个类以前没有被初始化过,这时才初始化类。也就是说forName()利用ClassLoader来加载类的。
    关于ClassLoader可以到http://www-900.ibm.com/developerWorks/cn/education/java/j-classloader/tutorial/j-classloader-2-1.shtml看一看,或者参考JDK的DOCUMENT
      

  5.   

    一个类的转载方法有3种,用new,Class.forname(),loadclass(),其中new为隐式装载,后两种为显式装载。