- mybatis同样有一级缓存和二级缓存。
- 一级缓存指在session的范围中同样的statement的id只会查询一次。
@Test public void testFindById(){ List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(3); List<User> users= session.selectList("cn.wh.mapper.UserMapper.findUserByCondition",list); for(User user:users) System.out.println(user); System.out.println("======================="); List<User> lists= session.selectList("cn.wh.mapper.UserMapper.findUserByCondition",list); for(User user:lists) System.out.println(user); }
- 二级缓存指 sessionFactory级别的缓存,二级缓存需要实体类被序列化,并且需要在配置文件中添加cache配置,在mybatis二级缓存缓存的时文件。
<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>