1.ORM映射:将数据库中的一条语句映射到Java对象。
2.MyBatis缓存机制:执行查询语句时候,将查询结果放到缓存当中(内存),如果下一次还是执行完全相同的查询语句,直接从缓存中拿数据。不再查数据库。不再去硬盘上找数据。目的是为了提高效率,通过减少IO的方式提高效率。
3.缓存指针对查询语句进行缓存,包括
一级缓存 查询到的数据存储到SqlSession中,只针对当前的一次会话,缓存范围小。
二级缓存 查询到的数据存储到SqlSessionFactory中,一个数据库连接只有一个SqlSessionFactory,缓存范围较大。
或集成其他第三方的缓存,EhCache
4.一级缓存是默认开启的,不需要任何配置,只要使用同一个SqlSession对象执行同一条SQL语句,就会走缓存。
SqlSession对象不一样,不走缓存,查询条件不一样也不走缓存。
在两次相同的查询语句之间执行delete update insert语句,即使不是对同一张表操作也清空缓存,执行sqlSession.clearcache()语句不走缓存
5.二级缓存
要想使用二级缓存,四个条件缺一不可。
1.<setting name="cacheEnable" value="true">全局性地开启或关闭所有映射配置文件中已配置的任何缓存,默认是true,无需设置
2.二级缓存默认是开启的,只需要在sqlMapper.xml文件中添加<cache/>标签,用来表示使用二级缓存。
3.使用二级缓存的实体类对象必须是可序列化的,也就是必须实现Serializable接口
4.SqlSession对象关闭或提交之后,一级缓存中的数据才会被写入二级缓存,此时二级缓存才可用。
标签:语句,缓存,映射,SqlSession,查询,二级缓存,Mybatis,机制 From: https://www.cnblogs.com/zhang12345/p/17379728.html