🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 概述 MyBatis既没有使用C3P0也没有使用DBCP,然是自己实现了一套连接池. MyBatis连接池提供了三种方式的配置: 配置的位置: 1. 主配置文件SqlMapConfig.xml中dataSource标签,type属性就是表示采用何连接池方式. ## 获取连接的方式 POOLED:先去空闲连接中查看是否有连接,如果没有就去活动连接查看是否已经到了最大数量,然后判断活动连接池中Oidest最早的,然后获取. ## type取值 1. POOLED:采用传统的Javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现. 2. UNPOOLED:采用传统的获取连接的方式,虽然也实现Javax.sql.DataSource接口,但是并没有使用池的思想. 3. JNDI:采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到的DataSourec是不一样的.注意:如果不是web或者maven的war工程,是不能使用的. 我们实际开发中使用的是Tomcat服务器,使用的就是DBCP连接池. ## 使用UNPOOLED 日志 ``` 2019-04-02 23:24:08,212 259 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Opening JDBC Connection 2019-04-02 23:24:08,468 515 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@50d0686] 2019-04-02 23:24:08,475 522 [ main] DEBUG om.like.dao.IUserDao.findTotal - ==> Preparing: select count(id) from user 2019-04-02 23:24:08,515 562 [ main] DEBUG om.like.dao.IUserDao.findTotal - ==> Parameters: 2019-04-02 23:24:08,542 589 [ main] DEBUG om.like.dao.IUserDao.findTotal - <== Total: 1 2019-04-02 23:24:08,543 590 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@50d0686] 2019-04-02 23:24:08,544 591 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@50d0686] //这里关闭了连接 ``` ## 使用POOLED ``` 2019-04-02 23:22:11,495 282 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Opening JDBC Connection 2019-04-02 23:22:11,774 561 [ main] DEBUG source.pooled.PooledDataSource - Created connection 1629604310. 2019-04-02 23:22:11,774 561 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@6121c9d6] 2019-04-02 23:22:11,777 564 [ main] DEBUG om.like.dao.IUserDao.findTotal - ==> Preparing: select count(id) from user 2019-04-02 23:22:11,836 623 [ main] DEBUG om.like.dao.IUserDao.findTotal - ==> Parameters: 2019-04-02 23:22:11,861 648 [ main] DEBUG om.like.dao.IUserDao.findTotal - <== Total: 1 2019-04-02 23:22:11,861 648 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@6121c9d6] 2019-04-02 23:22:11,862 649 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@6121c9d6] 2019-04-02 23:22:11,863 650 [ main] DEBUG source.pooled.PooledDataSource - Returned connection 1629604310 to pool. //这里是从池中获取的连接,现在返回到池中 ```