Springboot統合mybatisページングプラグインを使用する方法

私はSpringboot統合mybatisプラグインです、私のデータベースはmysqlです、私はsqlserverデータベースを私と試しました、これは大丈夫ではありません、sqlserverにはそれを試さないでください、sqlserverには制限がないので、コードについて話そうではありません:

Maven依存

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

データソースを構成するファイルで構成します。私はyumファイルであり、多くの人のプロジェクトはプロパティファイルである必要があります

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

##次に、1つをスタートアップクラスに挿入します。もちろん、導入しないと、データを取得できません。

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

マッパーファイル

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

サービスファイル

//测试分页插件
    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);
  }

コントローラー層

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

この時点で、mysql統合mybatisのページングが終了し、テスト結果は次のとおりです。
サイモン:テストデータ

公開された34元の記事 ウォンの賞賛0 ビュー3634

おすすめ

転載: blog.csdn.net/qq_43469899/article/details/100119116