漳州市住房和城乡建设局网站哪家公司做的好?

摘要:漳州市住房和城乡建设局网站,西安哪家公司网站做的好,齐齐哈尔市建设网站,中网可信网站查询一、MyBatis的缓存 1.1、MyBatis的一级缓存 一级缓存是SqlSession级别的,通过同一个SqlSess
漳州市住房和城乡建设局网站,西安哪家公司网站做的好,齐齐哈尔市建设网站,中网可信网站查询一、MyBatis的缓存 1.1、MyBatis的一级缓存 一级缓存是SqlSession级别的#xff0c;通过同一个SqlSession查询的数据会被缓存#xff0c;下次查询相同的数据#xff0c;就会从缓存中直接获取#xff0c;不会从数据库重新访问 使一级缓存失效的四种情况#xff1a; 1、…一、MyBatis的缓存 1.1、MyBatis的一级缓存 一级缓存是SqlSession级别的通过同一个SqlSession查询的数据会被缓存下次查询相同的数据就会从缓存中直接获取不会从数据库重新访问 使一级缓存失效的四种情况 1、不同的SqlSession对应不同的一级缓存 2、同一个SqlSession但是查询条件不同 3、同一个SqlSession两次查询期间执行了任何一次增删改操作 4、同一个SqlSession两次查询期间调用 clearCache()方法 手动清空了缓存 Testpublic void testGetEmpById(){SqlSession sqlSession1 SqlSessionUtil.getSqlSession();CacheMapper mapper1 sqlSession1.getMapper(CacheMapper.class);Emp emp1 mapper1.getEmpById(1);System.out.println(emp1);sqlSession1.clearCache();//手动清空一级缓存//mapper1.insertEmp(new Emp(null, 小红, 25, 男));Emp emp2 mapper1.getEmpById(1);System.out.println(emp2);/*SqlSession sqlSession2 SqlSessionUtil.getSqlSession();CacheMapper mapper2 sqlSession2.getMapper(CacheMapper.class);Emp emp3 mapper2.getEmpById(1);System.out.println(emp3);*/} 1.2、MyBatis的二级缓存 二级缓存是SqlSessionFactory级别通过同一个SqlSessionFactory创建的SqlSession查询的结果会被缓存此后若再次执行相同的查询语句结果就会从缓存中获取 二级缓存开启的条件 1、在核心配置文件中设置全局配置属性cacheEnabledtrue默认为true不需要设置 2、在映射文件中设置 cache / 标签 3、二级缓存必须在SqlSession关闭或提交之后有效 4、查询的数据所转换的实体类类型必须实现序列化的接口 Serializable 使二级缓存失效的情况 两次查询之间执行了任意的增删改会使一级和二级缓存同时失效 Testpublic void testCache() throws IOException {InputStream is Resources.getResourceAsStream(mybatis-config.xml);SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(is);SqlSession sqlSession1 sqlSessionFactory.openSession(true);CacheMapper mapper1 sqlSession1.getMapper(CacheMapper.class);Emp emp1 mapper1.getEmpById(1);System.out.println(emp1);sqlSession1.close();SqlSession sqlSession2 sqlSessionFactory.openSession(true);CacheMapper mapper2 sqlSession2.getMapper(CacheMapper.class);Emp emp2 mapper2.getEmpById(1);System.out.println(emp2);sqlSession2.close();} 1.3、二级缓存的相关配置 在mapper配置文件中添加的cache标签可以设置一些属性 1、eviction属性缓存回收策略默认的是 LRU。 LRULeast Recently Used– 最近最少使用的移除最长时间不被使用的对象。
阅读全文