mybatis总配置⽂件的dataSource的type属性介绍
mybatis总配置⽂件的datasource的type介绍
在mybatis的总配置⽂件中有⼀个标签
<dataSource type="pooled"><dataSource>
在⾥⾯可以放⼊配置数据库的基本连接信息
(driver,url,urname,password)
同时在该标签上有⼀个属性type,它表⽰mybatis获取连接的⽅式。type属性有三个值,分别为unPooled,pooled和JNDI。
unpooled
unPooled表⽰获取连接时不是从连接池中获取,⽽是直接new了⼀个连接返回,我们可以看看其内部的实现:
可以看到它是内部创建了⼀个连接给你返回。
pooled
pooled是利⽤了连接池的思想,它内部的原理⼤致是这样的:
1. ⾸先先判断空闲连接池内有没有空闲连接,如果还有则给你返回⼀个空闲连接。
2. 如果没有空闲连接,则去活动连接池内看看还有没有位置,如果还有,则new⼀个连接给你返回
3. 如果活动连接池没有位置了,则返回在活动连接池使⽤最久的连接。意思就是给你返回⼀个在活动连接池内待最久的连接。
内部源码:
JNDI
这个属性内部是使⽤了JNDI技术,每个服务器对应的连接池技术都不⼀样,⽐如tomcat服务器使⽤的dpcp连接池。这个属性值只能在web⼯程和maven的web⼯程中使⽤。因为不太了解,不做过多介绍。
上述的三个属性值都实现java.sql.dataSource接⼝规范,只是其内部的原理不同。最近正在学习mybatis框架,有空⼤家伙可以⼀起交流