JAVA访问数据库前都会使用Class.forName(String className),我只知道这是用来装载类的,但是类被装载到哪里去了?这个函数照我的理解应该是Class x = Class.forName("XXXX")形式的才算被装载了,为什么直接用Class.forName(String className)就可以了?这个函数返回的Class是不是被系统保留了?问题可能很菜,希望各位前辈赐教,不胜感激

解决方案 »

  1.   

    这一句是要装载数据库的驱动对象。你可以把产生的这个驱动对象理解为一个守护对象,你并不需要主动调用它的方法来做些什么,而只需要它在内存中存在为你提供服务就可以了。其中的一个最基本的服务就是为你提供数据库连接的服务。正因为有它的存在,你才能使用DriverManager的静态方法getConnection来得到数据库的连接。在这个静态方法中,自然会去调用你刚生成的那个驱动对象的某些服务,比如与数据库服务器间建立TCP连接等,而这些细节都由JDBC为你封装了,不需要你去得到驱动对象的reference做任何操作。
      

  2.   

    Class.forName(String ClassName)的作用是运行期动态绑定到应用程序,!不形象的比喻是有点象设置classPath以待用