Druid 数据源 德鲁伊

Druid 是阿里巴巴开源的**高性能数据库连接池**,在 Spring Boot 项目中主要用于优化数据库连接管理,并提供丰富的监控功能。结合你的代码场景(MyBatis + Spring Boot),以下是 Druid 的核心作用:

---

### **1. 核心作用**
| **功能**                | **说明**                                                                 | **对应你的代码场景**                                                                 |
|-------------------------|--------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| **连接池管理**          | 复用数据库连接,避免频繁创建/销毁连接的开销,提升性能                     | 你的 `BookDao` 执行 SQL 时,Druid 会管理连接池,减少数据库压力                     |
| **SQL 监控与统计**      | 记录所有 SQL 执行耗时、参数、结果集大小,帮助优化慢查询                   | 可监控 `bookDao.getById(1)` 的执行时间,定位性能瓶颈                                |
| **防御性功能**          | 支持 SQL 防火墙、防止连接泄漏、防御 SQL 注入                             | 保护你的 `@Select` SQL 语句免受攻击                                                |
| **扩展性**              | 支持自定义过滤器、监控日志输出格式                                       | 可定制监控页面,观察 `BookDao` 接口的 SQL 执行情况                                 |
| **可视化监控**          | 内置监控页面,实时查看连接池状态、慢 SQL、并发数等                        | 通过浏览器访问 `/druid` 路径,直接查看 `tbl_book` 表相关 SQL 的执行统计            |

---

### **2. 对比默认连接池(如 HikariCP)**
Druid 的核心优势在于 **监控能力** 和 **防御功能**,而 Spring Boot 默认的 HikariCP 更轻量、性能更高。  
- **选择 Druid 的场景**:  
  1. 需要详细监控 SQL 执行情况(如你的 `BookDao` 方法调用统计)。  
  2. 需要防止 SQL 注入或连接泄漏。  
  3. 需要统计慢 SQL 并优化(如 `@Select` 语句性能分析)。  

---

### **3. 如何与你的代码整合?**
在你的 Spring Boot + MyBatis 项目中集成 Druid 只需两步:  
#### **步骤1:添加依赖**
```xml
<!-- pom.xml -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.16</version>
</dependency>
```

#### **步骤2:配置数据源**
```yml
# application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_db?useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource # 指定使用 Druid
```

#### **步骤3:访问监控页面**
启动项目后访问 `http://localhost:8080/druid`,输入配置的账号密码,即可看到所有 SQL 监控数据(包括 `BookDao` 的调用情况)。

---

### **4. 注意代码中的两个关键修正**
根据你的代码截图,需要修正以下错误以确保功能正常:  
1. **SQL 表名和占位符错误**:  
   ```java
   // 错误代码
   @Select("select * from tbl_back where id = #(id)")
   // 修正为
   @Select("SELECT * FROM tbl_book WHERE id = #{id}")
   ```
2. **测试类括号错误**:  
   ```java
   // 错误代码
   System.out.println(bookDao.getById(1);
   // 修正为
   System.out.println(bookDao.getById(1));
   ```

---

### **总结**
在你的项目中引入 Druid 后:  
1. **性能提升**:通过连接池复用机制,优化 `BookDao` 的数据库操作效率。  
2. **问题排查**:通过监控页面快速定位 `getById` 等方法的 SQL 性能问题。  
3. **安全保障**:防御 SQL 注入,避免因参数拼接导致的安全漏洞。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值