当前位置: 首页 > news >正文

springboot基础-Druid数据库连接池使用

文章目录

      • 引入Druid组件(maven)
      • 配置数据源
      • Druid配置项
        • 1. 数据源配置
        • 2. 监控配置
        • 3. 安全配置
        • 4. SQL拦截配置
      • 示例配置
      • 相关地址

Druid是阿里巴巴开源的一个高性能的Java数据库连接池组件,它提供了强大的监控统计功能和工具支持。Druid不仅可以作为一个数据库连接池,还提供了SQL解析、SQL统计、SQL慢SQL日志等功能。

下面是对Druid配置的一些关键点的详细介绍:

引入Druid组件(maven)

  • springboot
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.23</version>
</dependency>
  • 单独使用
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.23</version>
</dependency>

配置数据源

Druid配置项

1. 数据源配置

Druid数据源的基本配置项包括:

  • driverClassName:指定JDBC驱动的全限定名。
  • url:数据库连接的URL。
  • username:数据库用户名。
  • password:数据库密码。
  • initialSize:初始化时建立物理连接的个数。
  • minIdle:最小空闲连接数。
  • maxActive:最大活跃连接数。
  • maxWait:获取连接时的最大等待毫秒数,如果超过这个时间还没有可用的连接,则抛出异常。
  • timeBetweenEvictionRunsMillis:两个连接池维护线程检查之间的时间间隔。
  • minEvictableIdleTimeMillis:一个连接至少停留在空闲状态的时间才有可能被驱逐。

空闲连接释放时间

  • validationQuery:用来验证连接有效性的SQL语句。

很重要, 默认为null, 只有开启了才能使用连接有效性校验功能

  • testWhileIdle:申请连接前进行验证,如果为true,则进行空闲连接的有效性校验。

在minEvictableIdleTimeMillis时间内不再执行校验, 超出后校验

  • testOnBorrow:申请连接时进行验证。

开启时影响性能,所以不建议开启

  • testOnReturn:归还连接时进行验证。

开启时影响性能, 不建议开启

  • poolPreparedStatements:是否缓存PreparedStatement,默认为false。
  • maxPoolPreparedStatementPerConnectionSize:每个连接上PreparedStatement的最大数量。
  • filters:配置监控统计拦截的filters,常用的有stat,log4j,wall等。
2. 监控配置

Druid提供了一个web控制台来监控连接池的状态,可以通过以下配置启用:

  • webStatFilter.enabled=true:开启Web监控页面。
  • statViewServlet.enabled=true:开启监控页面。
  • statViewServlet.urlPattern=/druid/*:设置监控页面的路径。
  • statViewServlet.resetEnabled=false:是否允许重置统计数据。
3. 安全配置

为了保护监控页面的安全,可以配置登录账号和密码:

  • statViewServlet.loginUsername=admin
  • statViewServlet.loginPassword=admin
4. SQL拦截配置

Druid支持SQL拦截,可以记录SQL执行情况,用于调试和性能优化:

  • filters=stat,wall,slf4j:配置三个过滤器,分别是统计、防火墙、日志。
  • wallEnabled=true:启用SQL防火墙。
  • wall.rejectUrl=/druid/sql.html:SQL防火墙拒绝后重定向的地址。
  • wall.sqlStatEnabled=true:开启SQL统计。
  • wall.logSlowSql=true:记录慢SQL。
  • wall.logSlowSqlMs=2000:慢SQL的阈值,单位是毫秒。

示例配置

  • 参考配置:
 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="${jdbc_url}" /><property name="username" value="${jdbc_user}" /><property name="password" value="${jdbc_password}" /><property name="filters" value="stat" /><property name="maxActive" value="20" /><property name="initialSize" value="1" /><property name="maxWait" value="6000" /><property name="minIdle" value="1" /><property name="timeBetweenEvictionRunsMillis" value="60000" /><property name="minEvictableIdleTimeMillis" value="300000" /><property name="testWhileIdle" value="true" /><property name="testOnBorrow" value="false" /><property name="testOnReturn" value="false" /><property name="poolPreparedStatements" value="true" /><property name="maxOpenPreparedStatements" value="20" /><property name="asyncInit" value="true" /></bean>

以上配置仅作为参考,实际使用时应根据具体需求调整各项参数。

相关地址

  • druid官网地址
  • druid开源代码github地址
  • druid中文wiki地址
  • druid数据源配置推荐
  • druid数据源配置全量属性

http://www.mrgr.cn/news/23848.html

相关文章:

  • [产品管理-4]:NPDP新产品开发 - 2 - 制定企业经营战略目标的结构化方法与工具
  • [Python]一文掌握Nuitka 参数语法详细介绍与示例
  • 7.科学计算模块Numpy(4)ndarray数组的常用操作(二)
  • WindTerm 2.6.1:全新版本,更强大,更便捷!
  • Web开发:ABP框架2——层次结构、ORM的使用、Webapi控制器的编写
  • 计算机网络:概述 - 计算机网络概述
  • c语言--力扣简单题目(删除排序链表中的重复元素)讲解
  • windows软件应该安装在哪里
  • 园区竞争十分激烈,各类园区网站美出天际啦。
  • 经验笔记:Web 浏览器存储手段
  • 告别繁琐,IsMyHdOK硬盘测速,即刻享受科技便利
  • 内网安全:反弹shell
  • 力扣题/回溯/单词搜索
  • vue2项目如何设置同样的接口第一次请求有效,如果第二次请求同样的接口,则不去请求,因为第一次请求还没有返回数据
  • Java代码审计篇 | ofcms系统审计思路讲解 - 篇3 | 文件上传漏洞审计
  • 100个候选人,没一个能讲明白什么是自动化框架?
  • Guitar Pro 8.2.1 Build 32 永久中文破解解锁版
  • Unity1 Prefab
  • 容易出错的if语句
  • 【springsecurity】使用PasswordEncoder加密用户密码