一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就 会从缓存中直接获取,不会从数据库重新访问
使一级缓存失效的四种情况:
1) 不同的SqlSession对应不同的一级缓存
2) 同一个SqlSession但是查询条件不同
虽然查询的都是一个对象,但是查询条件不一样,则缓存失效
3) 同一个SqlSession两次查询期间执行了任何一次增删改操作
虽然删除的和我们查询的不是一条数据,仿佛删除一条数据对我们没有影响,但是如果我们删除的是要查询的数据,虽然数据库里面没有这条数据,但是缓存里面有这条数据,则还是能查到这条数据,避免这种情况的发生,所以进行增删改后缓存的内容消失。
4) 同一个SqlSession两次查询期间手动清空了缓存