• 使用SpringBoot整合数据库连接池Druid的错误总结


    前言

    今天使用SpringBoot整合数据库连接池Druid的错误总结的时候,遇到了几个问题,都已经解决,在这里分享给大家

    发现和解决问题

    在这些问题中,我会通过复制关键字和截图的方式,帮助大家确实错误是否一致

    问题1

    如图所示,控制台显示貌似已经成功了,但是我们可以发现,其实在启动成功之后,因为一个错误,导致系统停止了
    在这里插入图片描述
    想要解决这个问题,可以再加一个jar包

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>2.0.1.RELEASE</version>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这时候我们再次启动,解决问题
    在这里插入图片描述

    问题2

    关键日志:

    Caused by: java.lang.ClassNotFoundException: org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘dataSource’: Unsatisfied dependency expressed through field ‘basicProperties’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘spring.datasource-org.springframework.boot.autoconfigure.jdbc.DataSourceProperties’: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.jdbc.DataSourceProperties]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseType

    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘spring.datasource-org.springframework.boot.autoconfigure.jdbc.DataSourceProperties’: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.jdbc.DataSourceProperties]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseType

    在这里插入图片描述
    解决这个问题,也是需要一个jar包

      <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
                <version>2.1.3.RELEASE</version>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    再次启动解决问题

    需要注意的地方

    配置数据库的相关信息的时候

    注意用户名和密码,以及url,尤其是url,不同的库以及版本不同,都会导致url出错

    还有就是jar包冲突,缺少jar包等

    相关代码

    这里我把我的pom相关依赖和配置文件分享给大家

        <dependencies>
            <!--druid数据库连接池-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>1.1.21</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
                <version>2.1.3.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.18</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
                <version>2.7.2</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>2.0.1.RELEASE</version>
            </dependency>
    
    
        </dependencies>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    spring.datasource.druid.url=jdbc:mysql://localhost:3306/test?serverTimezone=GMT&allowPublicKeyRetrieval=true&useSSL=false&characterEncoding=utf8
    spring.datasource.druid.username=root
    spring.datasource.druid.password=root
    spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
    
    spring.datasource.druid.initialSize=10
    spring.datasource.druid.maxActive=20
    spring.datasource.druid.maxWait=60000
    spring.datasource.druid.minIdle=1
    spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
    spring.datasource.druid.minEvictableIdleTimeMillis=300000
    spring.datasource.druid.testWhileIdle=true
    spring.datasource.druid.testOnBorrow=true
    spring.datasource.druid.testOnReturn=false
    spring.datasource.druid.poolPreparedStatements=true
    spring.datasource.druid.maxOpenPreparedStatements=20
    spring.datasource.druid.validationQuery=SELECT 1
    spring.datasource.druid.validation-query-timeout=500
    spring.datasource.druid.filters=stat
    
    
    spring.datasource.druid.stat-view-servlet.enabled=true
    # 访问地址规则
    spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
    # 是否允许清空统计数据
    spring.datasource.druid.stat-view-servlet.reset-enable=true
    # 监控页面的登录账户
    spring.datasource.druid.stat-view-servlet.login-username=admin
    # 监控页面的登录密码
    spring.datasource.druid.stat-view-servlet.login-password=admin
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    总结

    以上就是我遇到并解决的问题,有一些地方还不是很明白,随着学习会持续更新

  • 相关阅读:
    Flask框架-1-[群聊]: flask-socketio实现websocket的功能
    MYSQL-存储引擎
    【愚公系列】2022年11月 微信小程序-优购电商项目-商品支付页面
    Mysql——使用字符集以及校对
    基于python的毕业设计电脑硬件配置推荐系统
    游戏类app有哪些变现方式?
    git使用
    超参数优化专题之工具—microsoft/nni(1)
    简单好用的轻量级思维导图:ClickCharts 激活for mac
    大数据课程L6——网站流量项目的SparkStreaming
  • 原文地址:https://blog.csdn.net/weixin_46713508/article/details/127338361