关于使用dbcp1.4出现的No suitable driver异常的问题!

在转载上一篇博文中,我发现将数据库放在jre的ext目录中可以解决这个异常。

但是这样并不能消除我的疑问,为什么要把驱动包放在那里才能正常运行呢?阅读了论坛的很多帖子我发现凡是关于这个问题的帖子必有关于jvm类加载机制的说法。但对于这种很抽象的东西确实说出来令人感到费解。但是所幸的是,问题是解决了,大家也不必纠结原理了。

对于项目的异常问题我做了很多的实验:

比如:

使用c3p0连接池,未发现异常

使用纯jdbc未发现异常

使用dbcp1.4,在tomcat环境下,发现No suitable driver异常。(将驱动包放在jre目录中,异常消失。使用java application运行无异常)。

通过以上测试我想起了以前学到的知识,不管驱动包是否是老版本还是旧版本,我们最好使用Class.forName("com.mysql.jdbc.Driver");来手动加载驱动类。

在加上这句代码后,再次测试,异常消失。

所以得出以下结论:

dbcp1.4存在以下缺陷,在web工程中需要手动加载驱动类。也就是在获得数据库连接的前面的代码中最好加上一句Class.forName("com.mysql.jdbc.Driver")。

猜你喜欢

转载自blog.csdn.net/a1286160028/article/details/78442966
今日推荐