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

Druid连接池

一.什么是Druid连接池?

Druid 是阿里巴巴开源的一款数据库连接池(Database Connection Pool),具有高效、稳定、安全等特点。除了连接池的功能外,Druid 还提供了强大的 SQL 监控、统计、日志记录、防火墙等功能。它主要用于管理数据库连接、提高数据库访问性能,并且可以帮助开发人员分析和监控 SQL 语句的执行情况。

二.Druid连接池的使用场景:

  • 高并发环境下数据库连接池的管理。
  • 需要对 SQL 进行性能分析和监控的场景。
  • 需要对 SQL 进行安全防护,防止 SQL 注入等攻击的场景。
  • 需要自动化数据库连接池管理和监控的企业级项目。

三.Druid连接池的使用方法:

Druid 可以非常方便地集成到 Spring Boot 项目中,通过简单的配置文件修改和少量代码就可以启用其数据库连接池及监控功能。配置 Druid 的步骤包括:

  1. 引入 Druid 的依赖。
  2. 配置数据源和连接池的参数。
  3. 启用 SQL 监控和 Web 控制台。

1.引入Druid依赖:

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

2.在 application.yml 中配置 Druid 数据源参数:

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/your_database
    username: root
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver
    druid:
      # 连接池基本配置
      initial-size: 10                   # 初始连接数
      min-idle: 10                       # 最小空闲连接数
      max-active: 50                     # 最大活跃连接数(并发数)
      max-wait: 30000                    # 获取连接的最大等待时间(毫秒)
      time-between-eviction-runs-millis: 60000   # 两次空闲连接检测的间隔时间(毫秒)
      min-evictable-idle-time-millis: 300000     # 连接保持空闲的最小时间(毫秒)
      validation-query: SELECT 1                  # 检查连接是否可用的 SQL
      test-while-idle: true               # 空闲时测试连接可用性
      test-on-borrow: false               # 获取连接时不测试
      test-on-return: false               # 归还连接时不测试
      #下面配置是监控,可通过http://localhost:8080/druid/来访问
      #通过 Druid 提供的 Web 监控控制台,对数据库连接池的运行情况进行可视化监控,同时提供了一定的权限控制,确保只有特定 IP 地址或用户能够访问该监控页面
      stat-view-servlet:
        enabled: true                    # 启用 Druid 的监控视图功能
        url-pattern: /druid/*            # 设置访问监控视图的 URL 地址,例如 /druid/*
        allow: 127.0.0.1                 # 只允许本地 IP 127.0.0.1 访问该监控视图
        login-username: admin            # 设置访问监控页面时的用户名
        login-password: admin            # 设置访问监控页面时的密码


http://www.kler.cn/a/298879.html

相关文章:

  • [Unity]Unity集成NuGet-连接mysql时的发现
  • MySQL 数据库优化详解【Java数据库调优】
  • 重温设计模式--组合模式
  • taiwindcss
  • 鸿蒙Next之包体积极限优化
  • 3D架构图软件 iCraft Editor 正式发布 @icraftplayer-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
  • docker 重启容器且修改服务映射端口
  • python科学计算:NumPy 文件操作与数据读写
  • 【docker】Docker容器文件操作指南:从查看到传输
  • vue3 eltable 数据向上移动/向下移动
  • 在 JavaScript 中,=== 和 ==的区别
  • Python Web 框架篇:Flask、Django、FastAPI介绍及其核心技术
  • gdb中使用python脚本
  • 合宙4G模组Air780EX——产品规格书
  • 通信工程学习:什么是FMC固定移动融合
  • Anthropic 的 Claude AI 如何可能超过 OpenAI 的 ChatGPT?
  • [网络编程]通过java用TCP实现网络编程
  • 景联文科技:专业数据标注公司,推动AI技术革新
  • 【Android】ViewPager基本用法总结
  • 不同工况下的迁移轴承故障诊断,融合SE注意力机制的Resnet18迁移学习,附MATLAB代码...
  • LeetCode53. 最大子数组和(2024秋季每日一题 15)
  • 基于UDP的简易网络通信程序
  • Shell入门
  • Flutter集成Firebase中的Remote Config
  • Ai+若依(集成easyexcel实现excel表格增强)
  • Sky Takeaway