所谓缓存 指的是将与数据库的一次会话所查出的数据存入缓存中,如果之后需要查询相同的数据,就不需要继续向数据库发送sql语句,直接将数据从缓存中取出
一级缓存:也叫本地缓存,是mybaits默认开启的,是sqlsession级别的缓存,每一个sqlsession对象拥有自己的一级缓存,不同的sqlsession不能共用一级缓存。因此一级缓存有几种情况下会失效:
1.使用不同的sqlsession对象查询相同的数据,由于一级缓存分别属于两个不同的sqlsession对象,因此此时一级缓存失效。
2.sqlsession对象相同,但查询的条件不同
3.sqlsession对象相同,查询条件也相同,但两次查询之间进行了增删改查操作(因为两次查询之间的数据有可能对查询结果造成影响)
4.sqlsession对象相同,但两次查询之间手动清除了一级缓存