springboot整合mybatis分页插件的使用方法

我这是springboot整合mybatis插件,我的数据库是mysql,我试过了sqlserver数据库用我这个不行,sqlserver的就别白费力气了,因为sqlserver里面压根没有limit,不多说上代码:

maven依赖

<!--分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>3.4.2</version>
        </dependency>

在你配置数据源的文件里面配置一下:我这是yum文件,很多人的项目应该是properties文件

#分页插件
      pageheloer:
        helperDialect: mysql
        reasonable: true
        supportMethodsArguments: true
        params: count=countSql

## 接下来在启动类注入一个:当然你不引入的话是取不到数据的

@Bean
        public PageHelper pageHelper() {
            PageHelper pageHelper = new PageHelper();
            Properties properties = new Properties();
            properties.setProperty("offsetAsPageNum", "true");
            properties.setProperty("rowBoundsWithCount", "true");
            properties.setProperty("reasonable", "true");
            properties.setProperty("dialect", "mysql");
            pageHelper.setProperties(properties);
            return pageHelper;
        }

## 几个对象实体和工具类

public class PageRequest {
        private int pageNum;//当前页码
        private int pageSize;//每页数量

        public int getPageNum() {
            return pageNum;
        }

        public void setPageNum(int pageNum) {
            this.pageNum = pageNum;
        }

        public int getPageSize() {
            return pageSize;
        }

        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }

}
/**
 * 分页返回结果
 * */
public class PageResult {
    /**
         * 当前页码
         * */
        private int pageNum;

        /**
         *每页数量
         * */
        private int pageSize;

        /**
         *记录总数
         * */
        private long totalSize;

        /**
         *页码总数
         * */
        private int totalPages;

        /**
         * 数据模型
         */
        private List<?> content;

        public int getPageNum() {
            return pageNum;
        }

        public void setPageNum(int pageNum) {
            this.pageNum = pageNum;
        }

        public int getPageSize() {
            return pageSize;
        }

        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }

        public long getTotalSize() {
            return totalSize;
        }

        public void setTotalSize(long totalSize) {
            this.totalSize = totalSize;
        }

        public int getTotalPages() {
            return totalPages;
        }

        public void setTotalPages(int totalPages) {
            this.totalPages = totalPages;
        }

        public List<?> getContent() {
            return content;
        }

        public void setContent(List<?> content) {
            this.content = content;
        }
}

/**
 * 将分页信息封装到统一的接口
 * @param pageRequest
 * @param
 * @return
 */
public class PageUtils {

        public static PageResult getPageResult(PageRequest pageRequest, PageInfo<?> pageInfo) {
            PageResult pageResult = new PageResult();
            pageResult.setPageNum(pageInfo.getPageNum());
            pageResult.setPageSize(pageInfo.getPageSize());
            pageResult.setTotalSize(pageInfo.getTotal());
            pageResult.setTotalPages(pageInfo.getPages());
            pageResult.setContent(pageInfo.getList());
            return pageResult;
        }
}

上代码
xml文件

<!--测试分页插件-->
  <select id="test" resultMap="BaseResultMap">
    select * from t_personnel
  </select>

mapper文件

//测试分页插件
    List<Personnel> test();

service文件

//测试分页插件
    PageResult testPageHelper(PageRequest pageRequest);

实现类

//测试分页插件
    @Override
    public PageResult testPageHelper(PageRequest pageRequest) {
        return PageUtils.getPageResult(pageRequest,getPageInfo(pageRequest));
    }

    private PageInfo<Personnel> getPageInfo(PageRequest pageRequest) {
        int pageNum = pageRequest.getPageNum();
        int pageSize = pageRequest.getPageSize();
        PageHelper.startPage(pageNum, pageSize);
        List<Personnel> personnels = personnelMapper.test();
        for(Personnel p:personnels){
            System.out.println(p.getUsername());
        }

        return new PageInfo<Personnel>(personnels);
  }

controller层

 //测试分页插件
    @RequestMapping(value ="/testPage",method = RequestMethod.POST)
    public PageResult findPage(@RequestBody PageRequest pageRequest) {
        return personnelService.testPageHelper(pageRequest);
    }

至此mysql整合mybatis的分页结束,测试结果:
simon:测试数据

发布了34 篇原创文章 · 获赞 0 · 访问量 3634

猜你喜欢

转载自blog.csdn.net/qq_43469899/article/details/100119116