Class.forName(String className) 
          API:返回与带有给定字符串名的类或接口相关联的 Class 对象。感觉这句没什么用,返回的对象也没有用到

解决方案 »

  1.   

    Class.forName("类的全路径") ;当然有用啦,保证你加载驱动类到jvm,主要是防止你没有加载到jvm就直接使用
      

  2.   

    这句的作用在于其执行了你参数表示的类里的static块你反编译下你的jdbc driver jar包,然后找到参数所表示的类,里面会有个static块,大部分代码都是如下:DriverManager.regist.....你也可以显式的去执行这个代码,而不用forName
      

  3.   

    就是一个加载对象而已,你去new 你括号里面写的东西是一样的
      

  4.   

     加载连接数据库的驱动jar包
      

  5.   

    加载对应的java类,可以执行其static块以及static变量的赋值
      

  6.   

    Class.forName是对类的六个主动使用中的一种,会导致类的初始化,即会导致类的静态变量的初始化和静态代码块的执行
      

  7.   

    Class.forName(),用到了反射的机制。
      

  8.   

    你怎么确定你没有用到JDBC驱动?
    童鞋,眼睛看到的东西并不一定是真的...
    要知道有种东西叫static代码块,基于ClassLoader的规则,static代码块会在类被加载的时候执行另外,还要看你的JDBC版本
    JDBC4以后存在一个叫ServiceProvider的东西
    这个东西会检测所有加载的JAR文件是否支持一个叫身份认证服务,这个服务可以自动加载需要的JDBC类型
    也就是说,高版本下,是不需要自己手动执行Class.forName(JDBC DRIVER)这个动作的
      

  9.   

    Class.forName(""),通过java的反射的机制,从而保证你加载驱动类到jvm,然后直接调用指定的类。
      

  10.   

    这个是加载数据库的驱动个,不用怎么去理解它,就是用JDBC连接数据库的时候 有个包对吧,一个压缩包,拷贝到bin的文件夹里面,然后用Class.forName();加载驱动 才可以连接
      

  11.   

    加载了驱动你才能 DriverManager.getConnection(url)
      

  12.   

    这和Java虚拟机的类加载机制有关(ClassLoader),当你要用到一个类的时候(比如:使用new关键字,或调用某一个类的静态方法),虚拟机才会试图去相应的类路径将相应的class字节码文件加载到内存中,并生成一个Class对象。而你在写JDBC程序时,使用DriverManager.getConnection(...)获得一个数据库连接的时候,底层会去查找实现了jdbc接口的驱动厂商,所以如果你没有将驱动加载到内存中,调用该方法时,就会抛找不到驱动的异常。
    有关JVM类加载机制,可以参考这篇文章:http://blog.csdn.net/xyang81/article/details/7292380
      

  13.   

    一般在web应用程序中,JDBC等一些组件会由Application的类加载器所加载,所以当应用程序部署在容器中就不需要写特别加载的语句;
    但是有时我们需要进行单元测试,而这些测试往往发生在部署到容器之前,为了引起不必要的麻烦,我们通常都会加上这句,以确保drive的加载。DriverManager.regist和Class.forClass的作用相同,所以只需其中任何一个就可以了。