1. java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
错误如下:

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1308) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1136)
看到这个我的第一想法就是,会不会是我的数据库配置弄错了,我是我去测试了一下我写的代码:
这是数据库表

测试代码
public static void main(String[] args) throws Exception {
Connection connection = BaseDao.getConnection();
System.out.println(new StudentDaoImpl().getLoginStudent(connection, "11923020124").toString());
}
运行结果:没有任何问题的查询出来了

1.1 第一种解决办法(极为不推荐)
接着我就去网上搜了一下,网上给出的结果是,要把数据库连接的依赖放在tomcat的lib目录下面,这样确实是可行的,就像这样:

这时去启动tomcat服务器是完全没有问题的
但我总感觉怪怪的,为啥我以前没有这样导入过依赖就可以运行项目(我喜好使用Maven项目管理工具。) 以前我用这个模板建立web项目的时候,从来没有往tomcat的lib导入过依赖
1.2 第二种解决办法(有点小瑕疵,但还可以接受)
这个方法是在创建maven项目的时候选择
org.jetbrains.idea.maven.model.MavenArchetype模板
例如这样创建项目:任意门
不会配置Tomcat的请点击:任意门
这是我刚刚创建的测试项目:发现项目结构的 Artifacts自动导入了依赖,这就是我们为什么不用手动在导入tomcat lib目录导入依赖的根本原因!!!

Artifact 是maven中的一个概念,表示某个module要如何打包。这又多个模块的概念,不懂的就先当他是个web项目吧, 例如war exploded、war、jar、ear等等这种打包形式; 一个module有了 Artifacts 就可以部署到应用服务器中了
1.3 第三种解决办法(主推)
用模板干啥呢 是不是 代码这种玩意儿 手🦌他不香嘛 哈哈哈哈哈哈哈
下面演示一遍我是怎么玩的
1.3.1 创建空maven项目(不使用模板)



1.3.2 导入web框架


1.3.3 手动给Artifacts导入依赖




选择Library Files


这样我们的项目就有依赖了,就不用在Tomcat的lib目录添加依赖了,注意,每次pom.xml文件添加新的依赖都都要把新的依赖加进来,不然项目无法正常运行
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/112666.html