MyBatis整合Druid连接池

本文最后更新于:1 年前

MyBatis做为一个ORM框架,在进行数据库操作时是需要和数据库连接连接的,MyBatis支持基于数据库连接池的连接创建方式。

当我们配置MyBatis数据源时,只要配置了 dataSource 标签的 type 属性值为 POOLED 时,就可以使用 MyBatis 内置的连接池管理连接。如果我们想要使用第三方的数据库连接池,则需进行自定义配置。

常见的连接池

功能 dbcp druid c3p0 HikariCP
是否支持PSCache
监控 jmx jmx/log/http jmx,log jmx
扩展性
sql拦截及解析 支持
代码 简单 中等 复杂 简单
更新时间 2015.8.6 2015.10.10 2015.12.09 2015.12.3
特点 依赖于common-pool 阿里开源,功能全面 历史久远,代码逻辑复杂,且不易维护 优化力度大,功能简单,起源于boneCP
连接池管理 LinkedBlockingDeque 数组 threadlocal+CopyOnWriteArrayList

其中,Druid 性能比较好,提供了比较便捷的监控系统。但性能最好的是 Hikari。

Druid连接池配置步骤

1. 添加Druid依赖

1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.5</version>
</dependency>

2. 创建Druid连接池工厂

1
2
3
4
5
public class DruidDataSourceFactory extends PooledDataSourceFactory {
public DruidDataSourceFactory() {
this.dataSource = new DruidDataSource();
}
}

3. 将DruidDataSourceFactory配置给MyBatis数据源

mybatis-config.xml

4. 测试

MemberDAOTest.java

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!