1、引入依赖

我们在项目的pom.xml文件中引入以下代码

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.3</version>
</dependency>

这是分页插件的启动代码,项目启动时自行启动,如果使用别的依赖还需要做一些配置。所以我们使用简便的方式,我想大家也希望操作不需要太复杂吧。哈哈哈哈。接下来在mapper接口书写以下代码

2、将实体类对应的数据表内容放入集合中

List<Type> findAllType();

当然名字可以结合你自己的项目,看看你的实体类有哪些。然后在对应的mapper.xml输入以下代码

<select id="findAllType" resultMap="TypeEntityMap">
	SELECT * FROM t_type
</select>

紧接着来到业务层接口,也就是service层,输入以下代码

3、在Service层使用PageInfo属性

PageInfo<Type> getAllType(Integer pageNum,Integer pageSize);

Type为你项目的实体类,pageNum表示当前页,pageSize表示每页的数量。接下来一步,来到业务层的实现类也就是ServiceImpl文件

@Override
    public PageInfo<Type> getAllType(Integer pageNum,Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize,"id DESC");
        List<Type> types = typeMapper.findAllType();
        return new PageInfo<>(types);
    }

这个大家很熟悉了,不要漏掉PageHelper.startPage(pageNum,pageSize,"num DESC"); 这一行代码,要不然分页是不生效的。最后面引号里面的可填可不填,表示order by 也就是按什么排序,DESC表示倒叙排列。完成以上步骤就可以在Test类测试了

@Test
    public void getAllTyPe(){
        PageInfo<Type> typePageInfo = typeService.getAllType(1,5);
        System.out.println(typePageInfo);
//        List<Type> list = yupePageInfo.getList();
//        System.out.println(list);
//        System.out.println(list.get(0).getTypeName());
    }

大家对于可以输出的内容,都测试一下,看看有什么区别。我们先来看看PageInfo类的属性里有什么内容,如果用idea的话,可以按住ctrl同时点击PageInfo就可以进入了

private static final long serialVersionUID = 1L;
    private int pageNum;//当前页
    private int pageSize;//每页的数量
    private int size;//当前页的数量
    private int startRow;// 当前页面第一个元素在数据库中的行号
    private int endRow;//当前页面最后一个元素在数据库中的行号
    private long total;//总条数
    private int pages;//总页数
    private List<T> list;//结果集合
    private int prePage;//上一页
    private int nextPage;//下一页
    private boolean isFirstPage;//是否为首页页
    private boolean isLastPage;//是否为尾页页
    private boolean hasPreviousPage;//是否有上一页
    private boolean hasNextPage;//是否有下一页
    private int navigatePages;//导航页码
    private int[] navigatepageNums;//导航页号
    private int navigateFirstPage;//导航条上的第一页
    private int navigateLastPage;//导航条上的最后一页

我这里截取了一部分,相信对于小伙伴们来说有所帮助。最后就可以来到控制层了

4、Controller层调用

@RequestMapping("/")
    public String index(@RequestParam(value = "pageNum",defaultValue = "1")Integer pageNum, Model model){

        // 首页右侧分类
        PageInfo<Type> typePageInfo = typeService.getAllType(pageNum,6);
        model.addAttribute("types",typePageInfo);

        return "index";
    }

这样我们就可以在前端页面使用了。对于前端如何使用,大家视具体情况而定。使用thymeleaf和freemarker模板引擎调用方法不一样。下期我将想大家介绍,freemarker模板引擎的使用。