JDBC进阶之连接池的配置(Druid与HikariCP)
在我们前面的JDBC与数据库的连接中,每次操作都要用connection对象重新获取连接,用完之后再释放,但频繁的创建和销毁会造成资源的浪费,并且只连接一个对象。那么实际应用中,对于服务器来说压力非常大,于是我们用连接池来进行连接。
今天我们就来用两款比较常用的连接池,Druid与HikariCP。
特性 | HikariCP | Druid (阿里巴巴) |
---|---|---|
核心定位 | 极致性能的纯连接池 | 功能全面的数据库连接池与监控平台 |
性能 | 业界标杆,极致快 | 性能优秀,但与HikariCP在极限场景下有微小差距 |
功能特性 | 专注、核心:连接池生命周期管理、合理的默认配置 | 全面、强大:连接池、SQL监控、防火墙、SQL解析、慢查询日志、Spring集成等 |
监控与运维 | 基础:通过JMX暴露少量指标,需自行集成监控系统 | 强大、开箱即用:提供内置的监控页面,详细的统计信息(SQL执行次数、时间、慢SQL、连接池状态等) |
易用性 | 非常简单:配置少,依赖小,“默认即合理” | 相对复杂:功能多,配置项也多,需要一定学习成本 |
社区与生态 | 非常活跃,是 Spring Boot 2.x 及以上的默认连接池 | 非常活跃,阿里巴巴开源,在国内有广泛应用和丰富的文档 |
轻量级 | 非常轻量,代码精炼,Jar包小 | 相对较重,因为集成了大量功能 |
适用场景 | 微服务、云原生、高性能Web应用,追求极致性能和简洁 | 企业级应用、需要详细监控和SQL分析的场景,对运维监控要求高 |
1.Druid示例
下载druid的jar包
官网下载路径如下:
Central Repository: com/alibaba/druid
1.硬编码
硬编码:将连接池的配置信息与JAVA代码耦合在一起但不利于维护。
2.软编码
在项目目录下创建resource文件夹,创建db.properties配置文件,将连接信息定义在该文件中。
2.Hikari示例
这里需要两个包:Hikari jar 包和slf4 jar包(日志文件)
HikariCP官网下载路径如下:
Central Repository: org/slf4j/slf4j-api
Central Repository: com/zaxxer/HikariCP
1.硬编码
2.软编码
编写配置文件。