IDEA 中使用mybatis 连接数据库 显示连接不上 或 cannot find class:com.mysql.cj.jdbc.Driver

本文介绍了如何配置MyBatis的mybatis-config.xml文件来连接MySQL数据库,特别是针对MySQL 8.0及以上版本,需将driver属性改为com.mysql.cj.jdbc.Driver。同时,为确保兼容性,需在Maven项目中添加对应的mysql-connector-java依赖,版本为8.0.24。此外,还提供了遇到Cannot find class: com.mysql.cj.jdbc.Driver错误时的排查方法。
  • 根据mybatis官方文档得,mybatis-config.xml文件中连接数据库的代码如下:

    <?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="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/table_namw"/>
                    <property name="username" value="root"/>
                    <property name="password" value="123456"/>
    
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <!-- 将sql映射文件注册到全局配置文件中-->
            <mapper resource="EmployeeMapper.xml"/>
        </mappers>
    </configuration>
    
  • 如果使用的mysql是8.0以上,则需将driver属性改为以下内容:

     <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
    
  • 更改后还需在maven中添加mysql对应版本的依赖

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

ref:

MyBatis入门三:MyBatis基本使用一:MyBatis环境配置;(包括,pom引入Mybatis依赖;IDEA配置数据库;引入演示用SQL;mybatis-config.xml配置文件编写;)_小枯林的博客-优快云博客

Mybatis报错Cannot find class: com.mysql.cj.jdbc.Driver排查踩坑记录 - Angelatyd - 博客园 (cnblogs.com)

### 问题分析 在使用 MyBatis 时,出现如下异常: ``` Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: com.mysql.cj.jdbc.Driver ``` 该异常表明在运行时无法找到 MySQL JDBC 驱动类 `com.mysql.cj.jdbc.Driver`。此类问题通常与以下几个因素有关: - 项目未正确引入 MySQL JDBC 驱动依赖。 - 配置文件中使用JDBC URL 驱动类名匹配实际引入的 MySQL 版本。 - 使用Maven Gradle 等构建工具,但依赖未被正确下载引入到运行时类路径中。 ### 解决方案 #### 1. 添加 MySQL JDBC 依赖 确保在 `pom.xml`(Maven 项目) `build.gradle`(Gradle 项目)中添加了正确的 MySQL JDBC 驱动依赖。对于 MySQL 8.x 及以上版本,应使用 `mysql-connector-java` 8.x,并指定驱动类为 `com.mysql.cj.jdbc.Driver`。 Maven 示例配置如下: ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> ``` 对于 MySQL 5.x,应使用 `com.mysql.jdbc.Driver` 并引入对应的 JDBC 驱动版本[^1]。 #### 2. 检查 JDBC URL 和驱动类配置 在 MyBatis 的配置文件 `mybatis-config.xml` Spring Boot 的 `application.properties` 中,确保 JDBC URL 和驱动类的配置与使用MySQL 版本一致。 MyBatis 配置示例如下: ```xml <dataSource type="UNPOOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> ``` Spring Boot 配置示例如下: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` #### 3. 确保依赖被正确加载 如果使用 Maven 构建项目,运行以下命令以确保依赖被正确下载并加入类路径: ```bash mvn clean install ``` 在 IDE 中(如 IntelliJ IDEA),检查项目模块的依赖是否包含 `mysql-connector-java`。如果没有,请手动刷新 Maven 依赖重新导入项目[^2]。 #### 4. 检查运行时类路径 在某些情况下,即使依赖已正确配置,也可能因运行时类路径缺失而导致驱动类无法加载。例如,使用命令行运行程序时,需确保 `mysql-connector-java.jar` 被包含在 `CLASSPATH` 中。 Java 命令行示例: ```bash java -cp .;path/to/mysql-connector-java-8.0.33.jar com.example.Main ``` #### 5. 检查 MySQL 版本与驱动类的兼容性 MySQL 5.x 使用 `com.mysql.jdbc.Driver`,而 MySQL 8.x 使用 `com.mysql.cj.jdbc.Driver`。如果项目中配置了错误的驱动类,将导致 `ClassNotFoundException`。请根据实际安装的 MySQL 版本调整驱动类配置[^5]。 ###
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值