SpringBoot2整合MyBatis-plus中使用PageHelper

SpringBoot2整合MyBatis-plus中使用PageHelper(为了避免jar依赖冲突)

	因为看到很多朋友在SpringBoot2-MyBatis-plus整合项目中引入PageHelper分页工具出现问题,
特地记录一下笔者的使用方式。
	其主要问题还是因为pagehelper-spring-boot-starter所依赖的mybatis-spring,mybatis与
mybatis-plus-boot-starter所依赖的mybatis-spring,mybatis发生冲突只要排除掉即,以下是解决方案。

一、在SpringBoot2项目中引入相关依赖


<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
    <scope>runtimescope>
    <version>5.1.38version>
dependency>


<dependency>
    <groupId>com.baomidougroupId>
    <artifactId>mybatis-plus-boot-starterartifactId>
    <version>3.3.0version>
dependency>


<dependency>
    <groupId>com.github.pagehelpergroupId>
    <artifactId>pagehelper-spring-boot-starterartifactId>
    <version>1.2.10version>
    
    <exclusions>
        <exclusion>
        <groupId>org.mybatisgroupId>
        <artifactId>mybatisartifactId>
        exclusion>
        <exclusion>
        <groupId>org.mybatisgroupId>
        <artifactId>mybatis-springartifactId>
        exclusion>
    exclusions>
dependency>

二、application.yml配置(properties一样的道理)

pagehelper:
  # 指定使用的数据库数据库
  helperDialect: mysql
  # reasonable:分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, 		pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。
  reasonable: true

三、Service代码示例


public PageInfo getEmployeeByPage(Integer page, Integer size,String keyWord) {
     
    //在mapper方法前通过指定page页码与size每页条数
    Page<Object> pageObject = PageHelper.startPage(page, size);
    //这里就无须指定页码与条数并且该方法的对应sql也无须写limit
    //sql示例 select * from employee where name = #{keyword}(注意无须写limit分页)
    List<Employee> emps = employeeMapper.getEmployeeByPage(keyWord);
    //PageInfo中包装了分页信息
    PageInfo<Employee> info = new PageInfo<>(emps);
    return info;
}

四、PageInfo类封装的信息详情

//当前页
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;

你可能感兴趣的:(MyBatis,Mybatis-plus,SpringBoot,spring,boot,mybatis,java)