Springboot数据源

内置的数据源

  • SpringBoot内置提供了dbcp, tomcat, hikari三种连接池。

  • hikari在默认不配置其他数据源的条件生效。

  • tomcat数据源在hikari不可用,并且在web环境的条件下生效。

  • dbcp在hikari不可用,tomcat数据源也不可用的条件下生效。

  • 不使用其他数据源的时候,内置的三种数据源按满足条件的一种生效。


springboot自带数据源hikari常用配置

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/java_template?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2b8
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 1004
    hikari:                                       # springboot自带的连接池配置
      pool-name: DateHikariCP                     # 连接池名称
      minimum-idle: 5                             # 最小空闲连接数
      idle-timeout: 1200000                       # 空闲连接存活最大时间,默认600000 (10分钟)
      maximum-pool-size: 10                       # 最大连接数,默认10
      auto-commit: true                           # 从连接池返回的连接自动提交
      max-lifetime: 1800000                       # 连接最大存活时间,默认1800000 (30分钟)
      connection-timeout: 30000                   # 连接超时时间,默认30000 (30秒)
      connection-init-sql: SELECT 1               # 测试连接是否可用的语句

在不使用其他数据源的情况下,SpringBoot内置的数据源Hikari生效

image


druid数据源的使用

  • 引入阿里druid的maven依赖
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.22</version>
    </dependency>

或者

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.22</version>
        </dependency>

两个的主要区别在于druid-spring-boot-starter可以使用Springboot的自动配置功能,导入依赖后无需配置,数据源即可生效。并且两种配置方式上稍微有点区别


  • 引入druid后不做任何连接池配置的效果(依然是Springboot默认Hikari生效)
    image

  • 引入druid-spring-boot-starter后不做任何连接池配置的效果(SpringBoot自动配置功能使druid数据源生效)
    image

diuid两种常用的配置

  • 引入的依赖是druid
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/java_template?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2b8
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 1004
    type: com.alibaba.druid.pool.DruidDataSource  #指定类型为druid
    druid:                                  # druid配置
      initialSize: 5                        # 连接池初始化连接数量
      minIdle: 5                            # 连接池最小空闲数
      maxActive: 20                         # 连接池最大活跃连接数
      maxWait: 60000                        # 配置获取连接等待超时的时间
      timeBetweenEvictionRunsMillis: 60000  # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      minEvictableIdleTimeMillis: 300000    # 配置一个连接在池中最小生存的时间,单位是毫秒
      validationQuery: SELECT 1             # 连接是否有效的查询语句

  • 引入的依赖是druid-spring-boot-starter(可以把配置项druid提升一个层次书写,也支持上面的配置方式)

spring:
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/java_template?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2b8
      driver-class-name: com.mysql.cj.jdbc.Driver
      username: root
      password: 1004
      initialSize: 5                        # 连接池初始化连接数量
      minIdle: 5                            # 连接池最小空闲数
      maxActive: 20                         # 连接池最大活跃连接数
      maxWait: 60000                        # 配置获取连接等待超时的时间
      timeBetweenEvictionRunsMillis: 60000  # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      minEvictableIdleTimeMillis: 300000    # 配置一个连接在池中最小生存的时间,单位是毫秒
      validationQuery: SELECT 1             # 连接是否有效的查询语句

posted @ 2022-10-04 22:18  加瓦同学  阅读(212)  评论(0编辑  收藏  举报