maven项目连接数据库失败原因之一

在测试Maven项目时遇到UserService初始化问题,深入排查发现Dbconnection类的数据库连接报错,提示加载'com.mysql.jdbc.Driver'已废弃,推荐使用'com.mysql.cj.jdbc.Driver'。原来是由于MySQL版本过高导致。降低MySQL驱动版本后,成功解决了数据库连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天测试maven项目的时候,程序一直卡在UserService userService = new UserService()上。检查了几遍UserService这个类都没发现问题,然后系统也没报错。我就开始测试Dbconnetion这个类,这是封装了数据库连接和关闭操作的一个类,我先调用这个类的GetConnection方法 。Connection connection = Dbconnection.GetConnection();Dbconnection类代码如下:

private static String drivername = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/wust";
private static String username = "root";
private static String password = "yq981205";

public static Connection GetConnection() {

        Connection connection = null;
        try {
            Class.forName(drivername);
            connection = DriverManager.getConnection(url, username, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.out.println("加载驱动失败");
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("连接数据库失败");
        }

        return connection;
}

后来报出一个错误:Loading class ‘com.mysql.jdbc.Driver’ This is deprecated. The new driver class is ‘com.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

在网上找到了一个原因,可能是其MYSQL版本过高

我原先用的:

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.6</version>
</dependency>

后来我将MYSQL
版本改为:

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.0.4</version>
    </dependency>

结果数据库连接成功。

参考文章 maven管理工程,引入MyBatis、MySQL遇到的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值