烟台网站建设哪家便宜,多商家网站建设,成都网站开发哪家好,网站导航怎么设置1. 缓存的概念 缓存的概念 在内存中临时存储数据#xff0c;速度快#xff0c;可以减少数据库的访问次数。经常需要查询#xff0c;不经常修改的数据#xff0c;不是特别重要的数据都适合于存储到缓存中。
2.Mybatis缓存
mybatis包含了一个非常强大的查询缓存特性#…1. 缓存的概念 缓存的概念 在内存中临时存储数据速度快可以减少数据库的访问次数。经常需要查询不经常修改的数据不是特别重要的数据都适合于存储到缓存中。
2.Mybatis缓存
mybatis包含了一个非常强大的查询缓存特性他可以非常方便的定制和配置缓存。缓存可以极大的提高查询的效率mybatis系统当中默认定义了两级缓存一级缓存和二级缓存 默认情况之下只有一级缓存开启sqlSession级别的缓存二级缓存需要手动开启配置需要局域namespace级别的缓存。
1.一级缓存也叫本地缓存 MyBatis的一级缓存也是SqlSession的缓存。 SqlSession对象中维护了一个Map集合用于存储相互的缓存数据。 查询的时候先从SqlSession的缓存中查找如果有直接返回。如果没有查询数据库。 证明一级缓存的存在通过用户id查询2次查看结果。 public class UserTest {private InputStream in null;private SqlSession session null;private UserDao mapper null;/*** 测试查询所有的方法*/Testpublic 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.class);User user1 mapper.findById(1);System.out.println(user1.toString());System.out.println(-----------------);User user2 mapper.findById(1);System.out.println(user2.toString());System.out.println(user1 user2);//释放资源session.close();in.close();}
} 缓存失效的情况
sqlSession不同sqlSession相同查询条件不同sqlSession相同两次查询之间执行了增删改操作sqlSession相同手动清除一级缓存