Cannot find class: com.mysql.cj.jdbc.Driver

Cannot find class: com.mysql.cj.jdbc.Driver

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="dev">
        <environment id="dev">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/student_schema?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="7338333"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

请老师看看xml配置文件哪里写错了?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
芝芝兰兰 2019-09-02 11:25:10

同学你好。经测试同学的代码是没有问题的。

http://img1.sycdn.imooc.com//climg/5d6c89c30001067705040210.jpg

猜测可能是目录结构有问题:

首先保证MyBatisTstor在test\java目录下。且java是http://img1.sycdn.imooc.com//climg/5d6c8aa00001fb3700350033.jpg,mybatis-config.xml是在src/main/resources下,并且resources是http://img1.sycdn.imooc.com//climg/5d6c8b120001e1e000420037.jpg

http://img1.sycdn.imooc.com//climg/5d6c8a380001fb3304580420.jpg

如果这两个有哪个不是指定的文件夹效果,说明没有被应用为应该对应的结构文件,在文件夹上右键,将其变更文件夹类型即可:

http://img1.sycdn.imooc.com//climg/5d6c8b5d0001ebee07150193.jpg

祝学习愉快~

提问者 hblack 2019-09-01 19:09:01
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.imooc</groupId>
    <artifactId>mybatis</artifactId>
    <version>1.0-SNAPSHOT</version>
    <repositories>
        <repository>
            <id>aliyun</id>
            <name>aliyun</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.17</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

</project>
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
import org.junit.Test;

import java.io.IOException;
import java.io.Reader;
import java.sql.Connection;

public class MyBatisTstor {
    @Test
    public void testSqlSessionFactory() throws IOException {
        Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        System.out.println("加载成功");
        SqlSession sqlSession = sqlSessionFactory.openSession();
        Connection connection = sqlSession.getConnection();
        System.out.println("连接成功");
        System.out.println(connection);
    }
}


提问者 hblack 2019-09-01 15:32:17
  • 同学你好。首先看一下是否重复引入了mysql-connector的依赖。如果没有,则怀疑是缓存的问题哦,项目名右键使用maven ->reimport重新导入一遍依赖。然后使用IDEA头部菜单File -> Invalidate Cashes / Restart... 清除缓存,然后使用Build->ReBuild Project重新编译一下项目试一下~祝学习愉快~
    2019-09-01 16:34:13
  • 提问者 hblack 回复 芝芝兰兰 #2
    清除缓存和重新编译了还是会报错。。。另两个文件都贴在楼上了
    2019-09-01 19:09:49
芝芝兰兰 2019-09-01 10:19:24

同学你好。报错信息是

Cannot find class: com.mysql.cj.jdbc.Driver

意思是找不到com.mysql.cj.jdbc.Driver这个class文件。也就是说同学的数据库驱动jar包没有成功引入。com.mysql.cj.jdbc.Driver对应的应该是mysql的8开头的版本。

首先明确下是否该使用这个版本,使用cmd查看下自己的mysql版本,命令是“mysql --version”:

http://img1.sycdn.imooc.com//climg/5d6b298f000160fc05650054.jpg

1)如果是8开头,将pom文件中的数据库驱动依赖改为相同版本

<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.16</version>
</dependency>

然后在项目名上右击,选中Maven->Reimport重新导入依赖

http://img1.sycdn.imooc.com//climg/5d6b2a0700011b4708380384.jpg

2)如果不是8开头,是5系列的版本,那么需要将

<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
改为
<property name="driver" value="com.mysql.jdbc.Driver"/>

如果解答了同学的疑问,望采纳~

祝学习愉快~

  • 提问者 hblack #1
    都是8.0.17,但还是报错,截图在楼上
    2019-09-01 15:31:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师