**使用JdbcTemplate连接数据库时发生错误:**java.sql.SQLNonTransientConnectionException: Could not create connection to

💥报错有这么长
在这里插入图片描述
💘💘一脸懵逼之一脸懵逼

🌟诶,两血健康,一血不慌,咋一个一个报错的看

报错中很明显地提示,是数据库连接的问题

网上能找到的可能导致数据库连接错误的原因:
1.数据库链接地址、账户、密码错误
2.MySQL服务运行不正常
3.数据库版本和MySQL驱动版本不一致

接下来就按照可能错误原因一个个排查喽!

问题排查:

第一个:
比对了很久没问题,Bingo

第二个:
搜索框中输入“服务”,打开应用进行查看
在这里插入图片描述
我的网络服务MySQL80运行正常(我也不太清楚MySQL为啥有两个服务,本地系统和网络服务的区别我搞了好久也没整明白,希望有大佬指点)

第三个:
检查了下我本地MySQL是8.0的,用的驱动是5.0的,存在版本不匹配的问题,下了个对应的驱动包替代
下载链接:
链接:https://pan.baidu.com/s/1yZt6-6eFcFyucWIUPx5SxQ
提取码:e18w

但是问题并没有解决,再进一步搜索,可能是因为配置mysql时,没有指定MySQL版本,采用默认的版本,默认的版本过高,本地版本低,导致发生了冲突

配置MySQL版本的方法,打开pom.xml文件(只有用Maven创建的工程才会有这个文件,直接创建的工程是没有的),在pom.xml文件中添加依赖

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

添加依赖后如果发现爆红,则需要先在Maven中点击clean,删除之前编译过的文件
在这里插入图片描述
再选中项目右键 ——> maven ——> Reimport

再遇问题:
当你发现这样还是不行的时候,你心态就崩了(这就是我今天下午遇到的情况)

那该怎么办呢,毫无目的地摸索着,突然想到了是不是可能是数据源错误,说干就干,把dbcp的数据源换成德鲁伊的,诶,问题就解决了

附上我数据源的配置

    <!-- 数据库连接池 -->
    <!--<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="url" value="jdbc:mysql://localhost:3306/user_db" />
        <property name="username" value="root" />
        <property name="password" value="123" />
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
    </bean>

可是这样为啥换个数据源就好了呢,找了许久,网上没有太多的相关资料,我也挺迷惑的

本文暂且记录一下使用JdbcTemplate时遇到的问题,仍有许多不合理之处,望请斧正

Logo

本社区面向用户介绍CSDN开发云部门内部产品使用和产品迭代功能,产品功能迭代和产品建议更透明和便捷

更多推荐