缓存:
通俗点说就是提高效率,hibernate的一级缓存也是用来提高hibernate操作数据库的效率,hibernate一级缓存的本质就是在session对象中存一个Map集合,这个集合就叫一级缓存
证明缓存存在:
这里我们通过get方法来证明,
我们看到,控制台只打印了一条select语句,并且打印了true。
第一次查询Customer,会将数据从数据库取出,并封装.放入一级缓存并返回给我们. 第二次查询Customer,会直接从缓存中获得,不再查询数据库,这样缓解了数据了的压力
hibernate快照
我们先来看一个现象
我们可以看到,插入原本值时,没有触发update语句,当插入新值时,触发了update语句
其实当我们进行第一句查询时,hibernate把返回的Customer对象一式两份,一份保存到一级缓存,一份保存到快照当中,
然后返回给我们的是缓存中的对象。
图示
一级缓存就是个理解概念,当我们进行增删改查时,不会考虑它。