Java Web项目异常问题——java.lang.ClassNotFoundException: com.mysql.jdbc:Driver

Java Web项目时报出如下错误:

java.lang.ClassNotFoundException: com.mysql.jdbc:Driver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at java.lang.Class.forName0(Native Method)  
    at java.lang.Class.forName(Class.java:169)
    at mail.main(mail.java:114)  

数据库连接的主要代码:

// JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";
// 数据库的用户名与密码,需要根据自己的设置
static final String USERNAME = "root";
static final String PASSWORD = "123456";
Connection conn = null;

try{
    // 注册 JDBC 驱动器
    Class.forName("com.mysql.jdbc.Driver");
    // 打开一个连接
    conn = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD);
}catch(Exception e){
    // 处理 Class.forName 错误
    e.printStackTrace();
}
报出这个错误之后,我首先检查了一下自己的项目中是否有mysql-connector-java-x.x.xx-bin.jar,发现项目中是有这个包的,

并且在一个测试类的main方法里测试是可以正常连接到数据库的,但是切到时Web项目运行时,还是会报这个错误。


总结下原因:


在 java 项目中,只需要在 Eclipse 中引入 mysql-connector-java-5.1.39-bin.jar 就可以运行java项目。所以你如果只是在main方法里测试是可以正常连接数据库的。

但是在 Eclipse web 项目中,当执行 Class.forName("com.mysql.jdbc.Driver");时 不会去查找驱动的。

所以一个简单的 JDBC + Servlet 实现的小Web项目,我们可以把 mysql-connector-java-5.1.39-bin.jar 拷贝到 tomcat 下 lib 目录。

参考文章:

Servlet 数据库访问

http://www.runoob.com/servlet/servlet-database-access.html





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

windfallsheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值