mybatis
中的连接池
连接池::我们在实际开发中都会使用连接池,因为它可以减少我们获取连接所消耗的时间。
mybatis
连接池提供了3种方式的配置
配置的位置
主配置文件SqlMapConfig.xml中的dataSource
标签,type属性就是表示采用何种连接池方式。
type属性的取值
-
POOLED:采用传统的j
avax.sql.DataSource
规范中的连接池,mybatis
中有针对规范的实现 -
UNPOOLED :采用传统的获取连接的方式,虽然也实现
Javax.sql.DataSource
接口,但是并没有使用池的思想。 -
JNDI:采用服务器提供的JNDI技术实现,来获取
DataSource
对象,不同的服务器所能拿到DataSource
是不一样。如果不是web或者maven的war工程,是不能使用的。
我们使用的是tomcat服务器,采用连接池就是dbcp
连接池。
mybatis
中的事务
它是通过sqlsession
对象的commit方法和rollback方法实现事务的提交和回滚
什么是事务
事务的四大特性ACID
不考虑隔离性会产生的3个问题
解决办法:四种隔离级别
自动提交事务
sqlSession = factory.openSession(true);
设置为true
@Before//用于在测试方法执行之前执行
public void init()throws Exception{
//1.读取配置文件,生成字节输入流
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.获取SqlSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//3.获取SqlSession对象
sqlSession = factory.openSession(true);
//4.获取dao的代理对象
userDao = sqlSession.getMapper(IUserDao.class);
}
@After//用于在测试方法执行之后执行
public void destroy()throws Exception{
//提交事务
// sqlSession.commit();
//6.释放资源
sqlSession.close();
in.close();
}