mybatis的数据库连接池

直接看原文

原文链接:【MyBatis】 连接池技术_mybatis自带连接池-CSDN博客

本文先不说springBoot整合mybatis后的

本文讲的是没有被springBoot整合前的mybatis自己的默认的连接池


mybatsi的连接池不是默认开启的,是需要你配置指定POOLED的.

一.mybatsi自己的三种数据源

在引入的org.mybatis:mybatis:3.5.6的jar包下,有个datasource包,包下有三个mybatis的数据源,

  • UNPOOLED 不使用连接池的数据源
  • POOLED 使用连接池的数据源
  • JNDI 使用 JNDI 实现的数据源

因此,我们想用到mybatis自己的连接池的话,就需要在mybatis-config.xml配置文件中配置有连接池的数据源POOLED .

在这三种数据源中,我们一般采用的是 POOLED 数据源(很多时候我们所说的数据源就是为了更好的管理数据 库连接,也就是我们所说的连接池技术)。

二.源码解析

相应地,MyBatis 内部分别定义了实现了 java.sql.DataSource 接口的 UnpooledDataSource和 PooledDataSource 类来表示 UNPOOLED、POOLED 类型的数据源(底层实际上封装了JDBC)。

UNPOOLED源码解析

POOLED源码解析

  • poolMaximumActiveConnections是最大的活动连接数,活动连接,就是正在与数据库交互的连接,默认是10
  • poolMaximumIdleConnections是空闲连接数,就是没有处理请求的连接,默认是5

UNPOOLED与POOLED的区别:

结尾

最后我们可以发现,真正连接打开的时间点,只是在我们执行SQL语句时,才会进行。其实这样做我们也可以 进一步发现,数据库连接是我们最为宝贵的资源,只有在要用到的时候,才去获取并打开连接,当我们用完了就再 立即将数据库连接归还到连接池中。

相关推荐
风景的人生9 小时前
mybatis映射时候的注意点
java·mybatis
玄〤9 小时前
MyBatis-Plus 核心功能详解:条件构造器、Service 封装与批量优化实践(黑马springcloud微服务课程)(day2)
spring cloud·微服务·mybatis
loading小马15 小时前
Mybatis-Plus超级实用的多种功能用法
java·spring boot·后端·maven·mybatis
高山上有一只小老虎18 小时前
mybatisplus分页查询版本 3.5.8 以下和版本 3.5.9及以上的区别
java·spring boot·mybatis
人道领域18 小时前
javaWeb从入门到进阶(MyBatis拓展)
java·tomcat·mybatis
J2虾虾1 天前
SpringBoot和mybatis Plus不兼容报错的问题
java·spring boot·mybatis
pp起床2 天前
【苍穹外卖】Day03 菜品管理
java·数据库·mybatis
九皇叔叔2 天前
【01】SpringBoot3 MybatisPlus 工程创建
java·mybatis·springboot3·mybatis plus
BD_Marathon2 天前
MyBatis逆向工程之清晰简洁版
mybatis
九皇叔叔2 天前
【02】SpringBoot3 MybatisPlus 加入日志功能
java·mysql·mybatis·日志·mybatisplus