How to use springboot integrated mybatis paging plugin

I am springboot integrated mybatis plug-in, my database is mysql, I tried the sqlserver database with me, this is not okay, don't try it for sqlserver, because there is no limit in sqlserver, let's not talk about the code:

maven dependency

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

Configure it in the file where you configure the data source: I am a yum file, and many people's projects should be properties files

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

## Next, inject one in the startup class: of course, if you do not introduce it, you will not get the data

@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;
        }

## Several object entities and tools

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;
        }
}

Code
xml file

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

mapper file

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

service file

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

Implementation class

//测试分页插件
    @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 layer

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

At this point, the paging of mysql integration mybatis is over, and the test results:
simon: test data

Published 34 original articles · won praise 0 · Views 3634

Guess you like

Origin blog.csdn.net/qq_43469899/article/details/100119116