1、概念

mybatis :是一个基于java的持久层框架

1.1、原理

1.2、特性

a、是支持定制化SQL、存储过程以及高级映射的持久层框架。
b、避免了几乎所有的JDBC代码和手动设置参数及获取结果集。
c、可以使用简单的XML文件或注解来配置和原始映射,将接口和java的POJO(普通的java对象)映射成数据库中的记录。

2、mybatis 缓存

就是会把查询回来的数据进行缓存。下次访问就可以直接从缓存数据中取出;不用再去数据库中去查了;这样的话就会快捷。mybatis 缓存分为一级缓存和二级缓存;所谓的一级二级就是对缓存的范围不一样。

2.1 一级缓存

一级缓存是SqlSession级别的;默认是开启的。通过同一个SqlSession查询的数据会被缓存。下次访问就可以直接从缓存数据中取出;不用再去数据库中去查了。
使得一级缓存失效的场景操作:
1)不同的SqlSession对应不同的一级缓存;就是创建不同一个SqlSession去做查询。
2)同一个的SqlSession查询条件对应不同。
3)同一个的SqlSession两次查询期间执行了一次增删改操作。
4)同一个的SqlSession两次查询期间手动清除缓存。

2.2 二级缓存

二级缓存是SqlSessionFactory级别的;默认是关闭的。通过同一个SqlSessionFactory创建的SqlSession查询的结果会被缓存。
二级缓存开启的缓存条件:
1) 在xml配置文件进行配置;
默认为rtue;不需要设置
2) 在mapper.xml映射文件进行配置;
image.png
3) 二级缓存必须在SqlSession关闭或者提交之后;才能将数据进行缓存。与一级缓存区别就是一级缓存就是缓存SqlSession没有关闭或者提交之后的数据。
4) 查询的实体类必须实现序列化才能有效。
使得二级缓存失效的场景操作:
两次查询期间执行了一次增删改操作就会使其二级缓存失效。

3、mybatis 分页

分页插件: