为了提升查询效率,提高用户体验,MyBatis提供了数据缓存支持,依据数据缓存的有效范围默认定义了一级缓存和二级缓存
一级缓存
1、该级缓存默认开启,不能关闭;
2、该级缓存为SqlSession级别的缓存,也称为本地缓存;
3、以下4种情况将会导致该级缓存失效:
a、在不同SqlSession中查询数据;
List<UserInfo> select();
<select id="select" resultType="com.jd.vo.UserInfo">
select * from user_info
</select>
public class Test {
public static void main(String[] args) {
try {
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
IUserInfoDao userInfoDao = sqlSession.getMapper(IUserInfoDao.class);
List<UserInfo> list = userInfoDao.select();
System.out.println(list.size());
list = userInfoDao.select();
System.out.println(list.size());
sqlSession.close();
sqlSession = sqlSessionFactory.openSession();
userInfoDao = sqlSession.getMapper(IUserInfoDao.class);
list = userInfoDao.select();
System.out.println(list.size());
sqlSession.close();
} catch (IOExcep