在springboot中使用PageHelper插件有两种较为相似的方式,接下来我就将这两种方式进行总结。
方式一:使用原生的PageHelper
1.在pom.xml中引入依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.3</version> </dependency>
2.在springboot的启动类(Application.java)里面注入配置
import com.github.pagehelper.PageHelper; import org.apache.ibatis.plugin.Interceptor; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication @MapperScan("com.example.super_manager.dao") public class SuperManagerApplication { public static void main(String[] args) { SpringApplication.run(SuperManagerApplication.class, args); } @Bean PageHelper pageHelper(){ //分页插件 PageHelper pageHelper = new PageHelper(); //属性内容按需求添加 /*Properties properties = new Properties(); properties.setProperty("dialect","mysql"); properties.setProperty("reasonable", "true"); properties.setProperty("supportMethodsArguments", "true"); properties.setProperty("returnPageInfo", "check"); properties.setProperty("params", "count=countSql"); pageHelper.setProperties(properties);*/ //添加插件 拦截器 new SqlSessionFactoryBean().setPlugins(new Interceptor[]{pageHelper}); return pageHelper; } }
3.controller控制器
public String getAllUser(Model model,String pageNo){ /*if (pageNo==null){ pageNo="1"; }*/ /* * 获得pageNo页面的5条数据 * @pageNo * @pageSize * */ //设置当前页数,和每页条目数 pageHelper.startPage(1, 5); List<User> allUser = userBiz.getAllUser(); //用pageInfo 对结果进行包装 PageInfo<User> pageInfo = new PageInfo<>(allUser); //将页面信息中的用户集合存储到userList 中,在页面拿取 model.addAttribute("userList",pageInfo.getList()); //将页面信息存储到page 中 model.addAttribute("page",pageInfo); return "userlist"; }
方式二:使用PageHelper的starter
1.在pom.xml中引入依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency>
2.在application.properties配置pagehelper的属性
#pagehelper分页插件配置 pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql
最后就是使用pagehelper进行分页了,其中最重要的一句就是
// PageHelper.startPage(pageNum,pageSize);pageNum:当前页数 pageSize:当前页需要显示的数量 重点语句,一定要在查询语句之前 public PageInfo<Blog> ajaxBlog(Integer pageNum,Integer pageSize){ PageHelper.startPage(pageNum,pageSize); List<Blog> blogList = blogMapper.selectByExample(new BlogExample()); PageInfo<Blog> pageInfo = new PageInfo<Blog>(blogList); return pageInfo; }