列表分页查询com.github.pagehelper

PageHelper.startPage是MyBatis分页插件PageHelper中的一个静态方法。这个方法用来设置分页参数并进行分页查询。它可以在MyBatis的查询方法之前调用,设置需要分页的页码和每页的记录数。在调用PageHelper.startPage之后,MyBatis会自动进行分页查询并返回分页结果。

#添加pagehelper配置
pagehelper:
    helperDialect: mysql
    reasonable: false
    supportMethodsArguments: true
    params: count=countSql

reasonable可以理解为是否开启自动优化默认为false,如果为true当查询的页码无数据时就会返回离输入的页码最近含数据的页码数据(最后一个有数据的页码数据或者第一页的数据)。如果设置为false当查询的页码无数据时就直接返回空了

@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("/member/manager")
@Api(value = "/member/manager", tags = "会员管理")
public class MemberController {

    private final MemberService memberService ;

    @ApiOperation("会员分页列表")
    @PostMapping("/queryPage")
    public BaseResult<PageResult<MemberPageVO>> selectMemberPageList(@RequestBody MemberReq req) {
        return BaseResult.defaultSuccess(memberService.queryAllPage(req));
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.test.business.mapper.MemberMapper">
    <select id="queryAllPage"
            resultType="com.test.domain.vo.MemberPageVO">
        SELECT
        t1.id,
        t1.user_name,
        t1.level, 
        t1.registrationDate 
        FROM
        t_batch_inquiry_policy t1
        WHERE t1.del_flag = 0
        <if test="name != null and name != ''">
            AND t1.user_name like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
        </if>
        <if test="levelList != null and levelList.size() > 0">
            AND t1.level IN
            <foreach collection="levelList" separator="," open="(" close=")" item="level">
                #{level,jdbcType=TINYINT}
            </foreach>
        </if>
        <if test="registrationStartDate != null ">
            AND t1.registrationDate <![CDATA[ >= ]]> #{registrationStartDate ,jdbcType=TIMESTAMP}
        </if>
        <if test="registrationEndDate != null">
            AND t1.registrationDate <![CDATA[ <= ]]> #{registrationEndDate ,jdbcType=TIMESTAMP}
        </if>
        ORDER BY
        t1.registrationDate DESC
    </select>
</mapper>
@Mapper
public interface MemberMapper extends BaseMapper<MemberPO> {

    List<MemberPageVO> queryAllPage(MemberReq req);
}
public interface MemberService extends IService<MemberPO> {

    PageResult<MemberPageVO> queryAllPage(MemberReq req);
}
@Slf4j
@Service
@AllArgsConstructor
public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberPO> implements MemberService {

    @Override
    public PageResult<MemberPageVO> queryAllPage(MemberReq req) {
        Page<MemberPageVO> page = PageMethod.startPage(req.getPageNumber(), req.getPageSize());
        super.baseMapper.queryAllPage(req);
        return PageResult.builder(page);
    }
}

 下面是两个通用结果类

public class PageResult<T> {
    /**
     * 页码
     */
    private int pageNumber;
    /**
     * 分页大小
     */
    private int pageSize;
    /**
     * 总记录数
     */
    private long total;
    /**
     * 查询数据
     */
    private List<T> records;

    public PageResult(List<T> records) {
        this(0, records);
    }

    public PageResult(long total, List<T> records) {
        this(0, total, records);
    }

    public PageResult(int pageSize, long total, List<T> records) {
        this(0, pageSize, total, records);
    }

    public PageResult(Page<T> page) {
        new PageResult<>(page.getPageNum(), page.getPageSize(), page.getTotal(), page.getResult());
    }

    public PageResult(int pageNum, int pageSize, long total, List<T> records) {
        new PageResult<>(pageNum, pageSize, total, records);
    }

    public static <T> PageResult<T> builder(Page<T> page) {
        return new PageResult<>(page);
    }

    public static <T> PageResult<T> builder(int pageNum, int pageSize, long total, List<T> records) {
        return new PageResult<>(pageNum, pageSize, total, records);
    }
}
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class BaseResult<T> implements Serializable {

    private static final long serialVersionUID = -3192682641390103439L;
    /**
     * 响应码
     */
    private String code;

    /**
     * 提示信息
     */
    private String msg;

    /**
     * 业务数据
     */
    private T data;

    public static <T> BaseResult<T> defaultFailure() {
        return new BaseResult<>(ErrorCodeEnum.UNKNOWN_ERROR.getCode(), ErrorCodeEnum.UNKNOWN_ERROR.getDesc(), null);
    }

    public static <T> BaseResult<T> defaultFailure(ErrorCodeEnum errorCode) {
        return new BaseResult<>(errorCode.getCode(), errorCode.getDesc(), null);
    }

    public static <T> BaseResult<T> defaultFailure(T data) {
        return new BaseResult<>(ErrorCodeEnum.UNKNOWN_ERROR.getCode(), ErrorCodeEnum.UNKNOWN_ERROR.getDesc(), data);
    }

    public static <T> BaseResult<T> defaultFailure(String msg) {
        return new BaseResult<>(ErrorCodeEnum.UNKNOWN_ERROR.getCode(), msg, null);
    }

    public static <T> BaseResult<T> defaultFailure(String code, String msg) {
        return new BaseResult<>(code, msg, null);
    }

    public static <T> BaseResult<T> defaultFailure(String msg, T data) {
        return new BaseResult<>(ErrorCodeEnum.UNKNOWN_ERROR.getCode(), msg, data);
    }

    public static <T> BaseResult<T> defaultFailure(ErrorCodeEnum errorCode, T data) {
        return new BaseResult<>(errorCode.getCode(), errorCode.getDesc(), data);
    }

    public static <T> BaseResult<T> defaultSuccess() {
        return BaseResult.defaultSuccess(null);
    }

    public static <T> BaseResult<T> defaultSuccess(T data) {
        return new BaseResult<>(ErrorCodeEnum.SUCCESS.getCode(), ErrorCodeEnum.SUCCESS.getDesc(), data);
    }

    public static <T> BaseResult<T> defaultSuccess(String msg, T data) {
        return new BaseResult<>(ErrorCodeEnum.SUCCESS.getCode(), msg, data);
    }

    public static <T> BaseResult<T> defaultSuccess(ErrorCodeEnum errorCode, T data) {
        return new BaseResult<>(errorCode.getCode(), errorCode.getDesc(), data);
    }

    public boolean isSuccess() {
        return ErrorCodeEnum.SUCCESS.getCode().equals(code);
    }

    public static <String> BaseResult<String> defaultSuccessWithDataStr(String data) {
        return new BaseResult<>(ErrorCodeEnum.SUCCESS.getCode(), null, data);
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值