QA-IDEA中用maven配置项目无法加载JDBC

Posted 孤独患者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QA-IDEA中用maven配置项目无法加载JDBC相关的知识,希望对你有一定的参考价值。

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Im building Maven Java Web application and when I do

Class.forName("com.mysql.jdbc.Driver");

I get

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 

mysql-connector is added to my pom.xml file like this

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.32</version>
    <scope>provided</scope>
</dependency>

But I keep getting this. I even tried downloading mysql-connector and adding it manually to project, but it doesn‘t change anything.

I also have the same app without Maven, and same code works fine

Answer:

You have set the scope of your dependency as provided. This means that the jar is used when compiling the project (although you shouldn‘t need it to compile it, since you should only use standard JDBC classes), but that it‘s not included in the jar or war created by the build, because this dependency is supposed to be "provided" by the application server where you deploy the application.

So, either you actually intend to have this jar provided, and it should be in the application server‘s classpath, or you want to bundle this jar with the application, and it should have the scope runtime(because you need it to run the app, but not to compile it), instead of provided.

 

以上是关于QA-IDEA中用maven配置项目无法加载JDBC的主要内容,如果未能解决你的问题,请参考以下文章

在IDEA 中用maven创建web项目

maven target 怎么运行 找不到或无法加载主类

Springboot中Maven项目加载架包问题?

eclipse中用maven创建web项目

IDEA maven中引入的依赖不自动导入项目

idea中用maven打包spring的java项目(非web)