Mybatis二级缓存和分页

1,springboot中mybatis二级缓存

1,配置文件打开二级缓存

mybatis:
    configuration:
        local-enalbled:true

2,在mapper.xml文件中添加


3,实体类序列化

public class Student implements Serializable

总结:

  • mybatis默认的session级别一级缓存,由于springboot中默认使用了hikariCP,所以基本没用,需要开启事务才有用。但一级缓存作用域仅限同一sqlSession内,无法感知到其他sqlSession的增删改,所以极易产生脏数据
  • 二级缓存可通过cache-ref让多个mapper.xml共享同一namespace,从而实现缓存共享,但多表联查时配置略微繁琐。
    所以生产环境建议将一级缓存设置为statment级别(即关闭一级缓存),如果有必要,可以开启二级缓存
  • 如果应用是分布式部署,由于二级缓存存储在本地,必然导致查询出脏数据,所以,分布式部署的应用不建议开启。

2,springboot中mybatis使用pageHelper实现分页查询

1,导入依赖

     
        com.github.pagehelper
        pagehelper-spring-boot-starter
        1.2.12
    

2,在application.properties或者application.yml格式配置pagehelper的属性

   pagehelper.helper-dialect=mysql
        pagehelper.reasonable=true
        pagehelper.support-methods-arguments=true
        pagehelper.params=count=countSql
  hepagehelper:
          lperDialect: mysql
          reasonable: true
          supportMethodsArguments: true
          params: count=countSql

3,在controller层调用

      PageHelper.startPage(1,5);
      List carTables = service.findallCar()
      PageInfo page = new PageInfo(carTables);

你可能感兴趣的:(Mybatis二级缓存和分页)