当前位置: 代码迷 >> J2SE >> 加载数据库驱动的有关问题
  详细解决方案

加载数据库驱动的有关问题

热度:9560   发布时间:2013-02-25 00:00:00.0
加载数据库驱动的问题
Class.forName("org.gjt.mm.mysql.Driver") 这句反复调用会有什么情况发生?
是只调用一次,还是不断的分配资源?

------解决方案--------------------------------------------------------
好像应该只加载一次吧!
他好像是要先判断你加载的类是不是已经被加载了,没加载的话才加载。
------解决方案--------------------------------------------------------
简单做一实验即可


public class Test {

public static void main(String[] args) {
try {
Class<?> a = Class.forName("org.gjt.mm.mysql.Driver");
Class<?> a1 = Class.forName("org.gjt.mm.mysql.Driver");
System.out.println(a == a1);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
打印出来为true,证明是同一对象,这里不担心对象过多的情况,不存在,因为是单例,既然是单例,所以也可以忽略两次加载是时间的差异,不过加载驱动,1次即可,多了没用
------解决方案--------------------------------------------------------
用反射加载,应该只是在刚开始的时候加载一次
  相关解决方案