mybatis缓存
一、什么是缓存
1.什么是缓存
- 存储在内存当中的数据
- 将用户常使用的数据存放在缓存(内存)当中,用户查询数据就不用从磁盘(关系型数据库文件)当中查询,从缓存当中查询,从而提高查询效率,解决了高并发系统的性能问题
2.为什么使用缓存
- 减少和数据库的交互次数,减少系统开销,提高系统效率
3.什么样的数据能使用缓存
- 经常查询并且不常改变的数据
二、Mybatis缓存
-
mybatis包含了一个非常强大的查询缓存特性,他可以非常方便的定制和配置缓存。缓存可以极大的提高查询的效率
-
mybatis系统当中默认定义了两级缓存:一级缓存和二级缓存
-
- 默认情况之下,只有一级缓存开启(sqlSession级别的缓存)
- 二级缓存需要手动开启配置,需要局域namespace级别的缓存。
1.一级缓存
1.一级缓存也叫本地缓存
-
与数据库同一次会话期间查询到的数据会放入的本地缓存当中。
-
如果以后需要获取相同的数据直接去缓存当中拿,没必要再去查询数据库
2.测试一级缓存
public class UserTest {
private InputStream in = null;
private SqlSession session = null;
private UserDao mapper = null;
/**
* 测试查询所有的方法
*/
@Test
public void findById() throws IOException {
//加载主配置文件,目的是为了构建SqlSessionFactory对象
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//创建SqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//通过SqlSessionFactory工厂对象创建SqlSesssion对象
session = factory.openSession();
//通过Session创建UserDao接口代理对象
mapper = session.getMapper(UserDao.