如何使用 MyBatis 进行数据库连接池配置?
·
一、MyBatis 连接池配置(核心:mybatis-config.xml)
MyBatis 自带 3 种数据源类型:
- UNPOOLED:不使用连接池(每次都新建连接,性能差)
- POOLED:MyBatis 自带连接池(企业常用)
- JNDI:从服务器获取连接(极少用)
二、配置 1:MyBatis 自带连接池(POOLED)
最简单,无需额外依赖。
在 mybatis-config.xml 中配置
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<!-- 配置 MyBatis 自带连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/数据库名?useSSL=false&serverTimezone=Asia/Shanghai"/>
<property name="username" value="root"/>
<property name="password" value="你的密码"/>
<!-- 连接池可选配置(优化用) -->
<property name="poolMaximumActiveConnections" value="10"/> <!-- 最大活跃连接 -->
<property name="poolMaximumIdleConnections" value="5"/> <!-- 最大空闲连接 -->
</dataSource>
</environment>
</environments>
三、配置 2:使用第三方高性能连接池(企业标准)
强烈推荐,比 MyBatis 自带池性能好太多!
① 阿里 Druid 连接池(最常用、最稳定)
步骤 1:导入依赖 Maven
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.20</version>
</dependency>
步骤 2:编写 Druid 工厂类
import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.datasource.DataSourceFactory;
import javax.sql.DataSource;
import java.util.Properties;
public class DruidDataSourceFactory implements DataSourceFactory {
private Properties props;
@Override
public void setProperties(Properties props) {
this.props = props;
}
@Override
public DataSource getDataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(props.getProperty("driver"));
dataSource.setUrl(props.getProperty("url"));
dataSource.setUsername(props.getProperty("username"));
dataSource.setPassword(props.getProperty("password"));
return dataSource;
}
}
步骤 3:在 mybatis-config.xml 中使用
<dataSource type="com.xxx.DruidDataSourceFactory">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/数据库名?serverTimezone=Asia/Shanghai"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
② SpringBoot 集成 MyBatis + Druid(最简)
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/数据库名
username: root
password: 123456
四、配置 3:HikariCP 连接池(SpringBoot 默认)
速度最快!
<dataSource type="com.zaxxer.hikari.HikariDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/数据库名"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
五、三种连接池对比(面试必背)
| 连接池 | 性能 | 推荐度 | 特点 |
|---|---|---|---|
| MyBatis 自带 POOLED | 一般 | ⭐⭐ | 简单无需依赖 |
| Druid | 高 | ⭐⭐⭐⭐⭐ | 监控、稳定、企业首选 |
| HikariCP | 极高 | ⭐⭐⭐⭐ | 速度最快,SpringBoot 默认 |
六、最核心总结
- 学习用:MyBatis 自带
POOLED - 企业用:Druid 连接池
- 配置都在 mybatis-config.xml 的
<dataSource>中 - 连接池作用:复用连接,大幅提升性能
更多推荐




所有评论(0)