MyBatis的一级缓存和二级缓存有什么区别?
MyBatis的一级缓存:该缓存仅仅只会对sqlSession数据查询数据进行缓存,缓存至一个map中,生命周期很短,当sqlSession消失时候消失,一级缓存是默认开启的,,每次的增删改操作都会刷新一级缓存。
MyBatis的二级缓存:该缓存是一个sqlSessionFactory级别的缓存,同一个sqlSessionFactory产生的sqlSession共享这个缓存,生命周期长,二级缓存是默认开启的,但是需要对每个Mapper进行配置,当查询操作较多时比较适合使用二级缓存,每次的增删改操作都会刷新二级缓存,频繁刷新二级缓存降低了系统性能。
MyBatis的优势有哪些?
什么是Mybatis:他是一个半自动化的数据持久层,分为三层,控制层,业务层,持久层,持久层就说数据访问层,之所以称为半自动化,是因为他虽然省去了jdbc的重复代码,但是还是需要我们手动去写sql语句
Mybatis的优点:和JDBC相比,消除了大量冗余的代码,不需要我们自己去处理结果集,配置参数提供了xml和注解两种方式用去配置映射,更简单,可以实现复杂的SQL语句,sql和java分开,功能边界很清晰。