MyBatis 连接池
连接池
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个。它可以减少我们获取连接所消耗的时间,连接池里面有若干连接,每个线程需要连接的时候就取一个出来,用完了就把连接放回去,连接池本质上就是一个存储连接的容器,也可以理解为一个集合对象且该集合必须是线程安全的,不能两个线程拿到同一个连接。同时该集合还要实现队列的特性——先进先出。
MyBatis中的连接池
MyBatis连接池提供了三种配置方式。分别是主配置文件SqlMapConfig.xml中的dataSource标签,里面的type属性表示采用何种连接池方式,取值可以是POOLED,UNPOOLED,JNDI。
pooled采用的是传统的javax.sql.DataSource规范中的连接池,MyBatis中有针对此规范的实现
unpooled采用的是传统的获取连接的方式,虽然也实现了javax.sql.DataSource接口,但没有使用池的思想,也就是每次用都新申请一个连接。
jndi采用服务器提供的jndi技术实现来获取DataSource对象,不同的服务器所能拿到的DataSource是不一样的。如果不是web或者maven的war工程,是不能使用的。
实际开发中大都使用tomcat服务器,采用的连接池是dbcp连接池。
一点一点积累,一点一点蜕变!