已解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver异常的正确解决方法,亲测有效!!!
2023-09-27 14:27:33 时间
已解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver异常的正确解决方法,亲测有效!!!
报错问题
连接数据库时经常出现的异常就是java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。所以今天我结合自己的经验给大家总结一下,碰到这类的异常要如何处理,首先给大家分享一下我在用MyBatis逆向生成时碰到到的这个异常。
java.lang.RuntimeException: Exception getting JDBC Driver
at org.mybatis.generator.internal.JDBCConnectionFactory.getDriver(JDBCConnectionFactory.java:100)
at org.mybatis.generator.internal.JDBCConnectionFactory.getConnection(JDBCConnectionFactory.java:70)
at org.mybatis.generator.config.Context.getConnection(Context.java:753)
at org.mybatis.generator.config.Context.introspectTables(Context.java:631)
at org.mybatis.generator.api.MyBatisGenerator.generate(MyBatisGenerator.java:257)
at org.mybatis.generator.api.MyBatisGenerator.generate(MyBatisGenerator.java:139)
at com.MyBatis.Test.create(Test.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.mybatis.generator.internal.ObjectFactory.internalClassForName(ObjectFactory.java:181)
at org.mybatis.generator.internal.ObjectFactory.externalClassForName(ObjectFactory.java:136)
at org.mybatis.generator.internal.JDBCConnectionFactory.getDriver(JDBCConnectionFactory.java:97)
... 28 more
解决方法
解决方法如下
pom.xml配置文件中标签中添加mysql依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
总结下出现com.mysql.jdbc.Driver异常的原因:
首先可以肯定的是这个异常就出在数据库的连接上,那我们逐个排查与数据库连接的代码总会找到异常所在。如果你实在是找不到异常所在,就把与数据库有关的代码注释起来,重新再写一遍,可能就解决问题了。下面总结如下:
- mysql四大参数容易出错,比如少个字母或者多个字母都不行,可参考如下:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/E3303
jdbc.username=root
jdbc.password=root
.mysql的依赖没有添加,有时我们可能粗心大意,忘记了,这个时候回去检查一下。
3.有时我们会用到c3p0-config.xml配置文件,文件名必须这么命名,而且文件位置必须放到src目录下,否则也会报类似异常。
福利
每周会送6本技术书籍包邮到家
由于博主时间精力有限,每天私信人数太多,没办法每个粉丝都及时回复
大家可以进社区裙或者添加博主微信
点击下方链接即可
http://t.csdn.cn/6kInJ
相关文章
- Java架构师-分布式(七):数据库读写分离、分库分表【使用MyCat数据库中间件】【MyCat本身不存储数据,数据都是存储在MyCat后面连接的MySql上,数据的可靠性和事务都是MySql保证的】
- linux环境下的mysql,httpd以及与宿主机的调试问题总结
- mysql转sqlite
- java实现mysql数据库的备份及还原
- 从.Net到Java学习第三篇——spring boot+mybatis+mysql
- Java 连接mysql的jdbcutil代码
- java+s2sh+mysql水费系统
- java+s2sh+mysql音乐网站
- 恢复MySQL主从数据一致性的总结
- java+s2sh+mysql音乐网站
- 美团Java面试题,mysql使用教程5.5
- mysql数据库设计
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- mysql笔记系列(七)唯一索引和普通索引的性能区别
- 【转载】java高并发/mysql/mybatis/spring博客
- Mysql到Java数据类型映射的JDBC规范
- centos7最小版本安装nginx+tomcat+java+mysql运行环境
- mysql必知必会(三、使用mysql)
- 一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
- MYSQL,innodb_buffer_pool_size内存分配
- MySQL备份恢复之XtraBackup
- Java Jdbc驱动下载配置连接mysql数据库方法代码
- Java使用JDBC DriverManager 接口连接MySQL数据库
- mysql java连接异常及断开解决秘籍
- oracle/mysql/lightdb/postgresql java jdbc类型映射
- jackson/fastjson、mybatis、mysql date/datatime/timestamp、java Date/Timestamp关系详解
- Java连接mysql中遇到的一些问题及解决方法