Class.forName("")的
.instance()函数有什么用处,为什么连接odbc时就不用
而连接oracle时就必须用?
Class.forName(className)方法显式要求classloader加载className代表的类。使用JDBC时,driver的实际类型是以字符串的形式传给JDBC库的,JDBC库通过反射调用driver的方法。如果classloader并没有实际加载driver的类,调用就会出错。所以在使用JDBC之前通常先用forName方法强制要求classloader加载driver类。
Class.newInstance()方法创建该类的一个实例,相当于调用该类的无参数构造子。在这里没有实际的作用,顶多也就是确保classloader的确加载了driver类吧。
如果这句是用于数据库连接,一般数据库的Driver class里面都会有一段
程序,这段程序把自己在jvm里面注册一下,以便在DriverManager.getConnection
的时候在jvm能找到适当的Driver。而这段代码估计是写在static{...}里面。
至于.getInstance()是生成一个实例了,这里应该是用无参数的构造函数来
建立一个实例。