可以看出Mybatis将数据源分为三类
UNPOOLED 不使用连接池的数据源
POOLED 使用连接池的数据源
JNDI 使用JNDI实现的数据源
具体结构如下:
相应的,Mybatis内部分别定义实现了java.sql.DataSource接口的UnPooledDataSource,PooledDataSource类来标识两种类型的数据源
在这三种数据源中,我们一般采用的是Pooled数据源,很多时候我们所说的数据源就是为了更好的管理数据库连接,也就是我们所说的连接池技术
二、Mybatis中数据源的配置
我们的数据源配置就是在SqlMapConfigxml文件中,具体配置如下:
<!-- 配置数据源(连接池)信息 --> <dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource>
package org.apache.ibatis.datasource; import java.util.Properties; import javax.sql.DataSource; /** * @author */ public interface DataSourceFactory { void setProperties(Properties props); DataSource getDataSource(); }
四、Mybatis中链接的获取过程分析
@Test public void testSql() throws Exception { InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); SqlSession sqlSession = factory.openSession(); List<User> list = sqlSession.selectList("findUserById",41); System.out.println(list.size()); }
原文:https://www.cnblogs.com/mingqi-420/p/13025143.html