JDBC连接MySQL遇java.lang.ClassNotFoundException: com.mysql.jdbc.Driver错误求助
JDBC连接MySQL报错ClassNotFoundException解决方法
问题描述
使用JDBC连接MySQL时出现报错,已在DLESessionconfig.xml中配置如下属性:
<Property name="JDBCDriver" value="com.mysql.jdbc.Driver" /> <Property name="JDBCURL" value="jdbc:mysql://172.16.100.41:3306/verladen" />
收到的报错信息:
Exception: 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:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at.visionflow.dle.engine.connectors.DefaultJDBCConnectionFactory.getConnection(DefaultJDBCConnectionFactor
解决方法
核心原因
报错ClassNotFoundException: com.mysql.jdbc.Driver说明JVM无法找到指定的驱动类,本质是项目未引入对应版本的MySQL JDBC驱动包,或驱动包未被加载到类路径中。
具体步骤
匹配驱动包与MySQL版本
- 若MySQL版本为5.x:使用
mysql-connector-java5.x系列驱动,驱动类保持com.mysql.jdbc.Driver即可。 - 若MySQL版本为8.x:驱动类需改为
com.mysql.cj.jdbc.Driver,同时JDBC URL需添加时区参数,示例:
对应使用<Property name="JDBCURL" value="jdbc:mysql://172.16.100.41:3306/verladen?serverTimezone=UTC" />mysql-connector-java8.x系列驱动。
- 若MySQL版本为5.x:使用
引入驱动包
- Maven项目:在
pom.xml中添加对应版本的依赖
5.x版本依赖:
8.x版本依赖:<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</version> </dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> - 非Maven项目:手动下载对应版本的驱动jar包,将其放置到项目的类路径目录(如
WEB-INF/lib),确保应用启动时能加载到该jar包。
- Maven项目:在
验证配置正确性
确认配置文件中的驱动类名与引入的驱动包版本完全匹配,同时检查JDBC URL的IP、端口、数据库名称是否正确。
内容的提问来源于stack exchange,提问作者Jess Thiri Lwin
相关产品推荐
相关产品推荐

