• Mybaits使用PageHelper进行分页查询


    一 首先进行导包

             <dependency>
                 <groupId>com.github.pagehelper</groupId>
                 <artifactId>pagehelper</artifactId>
                 <version>5.1.10</version>
             </dependency>

    二 本次所用到的mybatis是用逆向工程生成的查询语句,是java类,并不是XML文件

    定义查询对象PageQuery.java

    import java.util.List;
    
    public class PageQuery<T> {
        private int pageIndex = 0;
        private int pageSize = 20;
        private long totalCount;
        private T queryModel;
        private List<T> list;
    
        public PageQuery() {
        }
        get and set...
    }

    使插件生效

    @Configuration
    @MapperScan("com.xxx.mybatis.mapper")
    public class SpringConfig {
    
        @Bean
        public PageInterceptor pageInterceptor() {
            return new PageInterceptor();
        }
    }

    Service

    public PageQuery<EquipmentOnlineStatus> query(PageQuery<EquipmentOnlineStatus> pageQuery) {
            log.info("recived pageQuery is {}", pageQuery);
            EquipmentOnlineStatus equipment = pageQuery.getQueryModel();
            EquipmentOnlineStatusExample example = new EquipmentOnlineStatusExample();
            EquipmentOnlineStatusExample.Criteria criteria = example.createCriteria();
            if (StringUtils.isNotBlank(equipment.getEquipmentId())) {
                criteria.andEquipmentIdEqualTo(equipment.getEquipmentId());
            }
            if (StringUtils.isNotBlank(equipment.getContractNo())) {
                criteria.andContractNoEqualTo(equipment.getContractNo());
            }
            if (StringUtils.isNotBlank(equipment.getCubeNo())) {
                criteria.andCubeNoEqualTo(equipment.getCubeNo());
            }
            if (StringUtils.isNotBlank(equipment.getTechnician())) {
                criteria.andTechnicianEqualTo(equipment.getTechnician());
            }
            if (StringUtils.isNotBlank(equipment.getPhoneNumber())) {
                criteria.andPhoneNumberEqualTo(equipment.getPhoneNumber());
            }
            // todo 需要排序时打开
    //        example.setOrderByClause("UpdateDate DESC");
    
            PageRowBounds rowBounds = new PageRowBounds(pageQuery.getPageIndex() * pageQuery.getPageSize(), pageQuery.getPageSize());
    
            List<EquipmentOnlineStatus> equipmentList = equipmentOnlineStatusMapper.selectByExampleWithRowbounds(example, rowBounds);
            pageQuery.setList(equipmentList);
            pageQuery.setTotalCount(rowBounds.getTotal());
    
            return pageQuery;

    请求的参数

    {
        "pageIndex":0,
        "pageSize":5,
        "queryModel":{
            "equipmentId": null,
            "contractNo": null,
            "cubeNo": null,
            "technician": null,
            "phoneNumber": null,
            "email": null
        }
    }
  • 相关阅读:
    oracle中 char,varchar,varchar2的区别
    .net + oracle + win2003部署遇到的问题集合
    Oracle下如何获得随机数,如何保留小数,如何取整数
    Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)
    Service和广播联合更新UI的例子
    [python] 类常用的内置方法
    android textview 换行 "\r\n"
    java操作excel
    项目指导原则
    SVN与bugzilla整合
  • 原文地址:https://www.cnblogs.com/zhanzhuang/p/11950259.html
Copyright © 2020-2023  润新知