Mybatis 第一个程序-各种坑篇Cannot find class: com.mysql.jdbc.Driver

第一大坑:Caused by: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: com.mysql.jdbc.Driver
image.png

在排错时,发现Mysql 5.x版本8.X连接DB的环境配置有很大差别,所以我们要首先匹配版本号,具体连接区别可以参考: https://www.cnblogs.com/jyroy/p/11276152.html

连接好后,我的环境是:
Mysql5.7.19
mysql-connector-java 5.1.47
jdk 1.8

网上搜到的关于Cannot find class: com.mysql.jdbc.Driver问题一般都是:

1,dependcy version不匹配,比如Mysql8.0的用了mysql-connector-java5.1的驱动;
2,mybatis-config.xml里的url字符串配错,比如多了一个空格
3,或者你的XXXMapper.xml的namespace路径错误。

我仔细检查了这三个问题,发现都是正确。配置文件如下: pom.xml



    
        mybatis-sky
        com.kuang
        1.0-SNAPSHOT
    
    4.0.0

    mybatis-2

    
        8
        8
    
    
    
        
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                
                true
            
            
                src/main/resources
                
                    **/*.properties
                    **/*.xml
                A
                true
            
        
    


mybatis-config.xml




    
        
            
            
                
                
                
                
            
        
    
    
        
    


UserMapper.xml




    

可以发现都是正确的,但是进行测试依然会出现找不到驱动的场面。

我也是偶然发现解决方法,应该是属于IDE的问题,我用的是InteliJ Idea。其实我们进到UserMapper.xml里

image-20210729214151997.png

会发现select标签是黄色的,有一个黄色warning,点开小灯泡:

image-20210729214244126.png

选configure data source:

image-20210729214353837.png

会看到Drivers里面的Mysql5.1,如果这里你的驱动没装,会显示红色,你直接选择安装即可。

等你回去运行,你会发现,之前的driver缺失问题解决了!

接下来就会遇到第二个大坑:

第二个大坑:error parsing sql mapper configuration. cause: java.io.ioexception: could not find resource com/kuang/dao/usermapper.xml

我已经在mybatis-config.xml里配置率mappers,他依然说找不到,其实就是没有加资源,等加入后就能解决了,这串代码也能解决resources文件夹里资源不被识别的问题。


        
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                
                true
            
            
                src/main/resources
                
                    **/*.properties
                    **/*.xml
                A
                true
            
        
    

注意一点:filtering标签里面的属性值是false。

本文视频参考:https://www.bilibili.com/read/cv5702420

课堂笔记参考:https://www.cnblogs.com/renxuw/p/13047424.html

你可能感兴趣的:(Mybatis 第一个程序-各种坑篇Cannot find class: com.mysql.jdbc.Driver)