解决springboot druid数据库连接池连接失败后一直重连问题

 更新时间:2022年11月25日 15:49:00   作者:enjoy嚣士  
这篇文章主要介绍了解决springboot druid数据库连接池连接失败后一直重连问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

druid数据库连接池连接失败后一直重连问题

当数据库暂停或者拒绝连接时,druid会一直连接

增加如下配置可以解决重连问题

spring.datasource.druid.break-after-acquire-failure=true
spring.datasource.druid.connection-error-retry-attempts=3

druid数据库连接池技术的实现与常见错误

第一步,win+R cmd进入到doc窗口,敲入mysql -V

一定要查看你mysql数据库的版本!!(以下是博主的)

mysql5.6使用的是 mysql-connector-java-5.1.26-bin.jar

更高的mysql版本需要使用 mysql-connector-java-8.0.19.jar(最新版本)数据库版本不对应会导致连接失败的。

mysql-connection-java的jar包 官网下载点击

不用登录,直接下载

如果你不想下载最新版本,点击Archives即可

下载完毕就要导入jar包 如图所示你正确导入包之后会出现小三角符号。

第二步,写好配置文件jdbc.properties

分两种:

#这个是mysql5.5版本的配置文件
username=用户名
password=密码
#url 注意这个book 表示你要连接的数据库
url=jdbc:mysql://localhost:3306/book
driverClassName=com.mysql.jdbc.Driver
initialSize=5
maxActive=5
#这个是mysql更高版本的配置文件
username=用户名
password=密码
#url 注意这个book表示你要连接的数据库
url=jdbc:mysql://localhost:3306/book?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
driverClassName=com.mysql.cj.jdbc.Driver
initialSize=5
maxActive=5

以上如果配置文件写的不对也会报错。

最后,直接上阿里Druid数据库连接池静态代码块

public class JavaUtils {   //实现数据库连接和关闭的封装 体会Java编程的思想
    private static DruidDataSource dataSource;

    static {

        try {
            // 读取jdbc.properties属性的配置文件
            Properties properties = new Properties();
            //从流中加载数据
            InputStream inputStream = JavaUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");

            properties.load(inputStream);

            dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
            System.out.println(dataSource.getConnection());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {

    }
  /*  关闭连接 放回数据库连接池*/
    public static void closeSources(PreparedStatement ps, Connection con) {
        try {
            if (ps != null)
                ps.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (con != null)
                con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

然后我又遇到的错误了 ,原因是配置文件的路径不对而报错(而且是疯狂爆红一直不停的那种)。

如果遇到报空指针异常,原因错误也很简单,我当时dataSource对象没有new出来却用它来调用方法,本人也尝试一直打断点调试找bug但没找到原因,归根结底是我没有好好理解每一行代码的含义,就一直拿着错误去百度,花了很多时间,也算是积累了经验教训了。如果出现以下就算连接成功。但当看到红字我以为又失败了哈哈

其实我之前用jdbc连接数据库是没有什么毛病的,但是我们要知道:

以上两张图片摘自尚硅谷宋红康jdbc核心技术。

总结

这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • shiro多验证登录代码实例及问题解决

    shiro多验证登录代码实例及问题解决

    这篇文章主要介绍了shiro多验证登录代码实例及问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java8 Stream 流常用方法合集

    Java8 Stream 流常用方法合集

    这篇文章主要介绍了 Java8 Stream 流常用方法合集,Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作,下文相关资料,需要的朋友可以参考一下
    2022-04-04
  • 浅谈SpringBoot如何正确拦截thymeleaf异常

    浅谈SpringBoot如何正确拦截thymeleaf异常

    Thymeleaf是一个模板引擎工具,主要用于页面渲染操作,本文主要介绍了浅谈SpringBoot如何正确拦截thymeleaf异常,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • RestTemplate添加HTTPS证书全过程解析

    RestTemplate添加HTTPS证书全过程解析

    这篇文章主要介绍了RestTemplate添加HTTPS证书全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Spring IOC创建对象的两种方式

    Spring IOC创建对象的两种方式

    这篇文章主要给大家介绍了关于Spring IOC创建对象的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • JDBC使用游标实现分页查询的方法

    JDBC使用游标实现分页查询的方法

    这篇文章主要介绍了JDBC使用游标实现分页查询的方法,实例分析了jdbc查询过程中游标的使用及查询分页相关实现技巧,需要的朋友可以参考下
    2016-08-08
  • Java杂谈之重复代码是什么

    Java杂谈之重复代码是什么

    刚开始工作时,总有人开玩笑说,编程实际上就是 CV,调侃很多程序员写程序依靠的是复制粘贴。至今,很多初级甚至高级程序员写代码依旧是CV,就是把其他项目里的一段代码复制过来,稍加改动,然后,跑一下没有大问题就完事。这就是在给其他人挖坑
    2021-09-09
  • Java中关于控制台读取数字或字符串的方法

    Java中关于控制台读取数字或字符串的方法

    下面小编就为大家带来一篇Java中关于控制台读取数字或字符串的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • postman测试post请求参数为json类型的实例讲解

    postman测试post请求参数为json类型的实例讲解

    下面小编就为大家分享一篇postman测试post请求参数为json类型的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Java编程实现递增排序链表的合并

    Java编程实现递增排序链表的合并

    这篇文章主要介绍了Java编程实现递增排序链表的合并,两种方法,代码分享给大家,供需要的朋友参考。
    2017-10-10

最新评论