spring boot 案例---分页查询

开发规范---restful

 分页查询

 

分页查询sql语法
参数1:起始索引=(页码-1)*每页展示记录数
参数2:查询返回记录数=每页展示记录数
查询第一页,每页五条
select * from emp limit 0,5;
查询第二页
select * from emp limit 5,5;

@RequestParam(defaultValue = "1")Integer page,
@RequestParam(defaultValue = "10") Integer pageSize
@ReqParam可以为page和pagesize利用defaultValue属性来设置默认值

条件分页查询

pojo层
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
    private Long total;//总记录数
    private List rows;//数据列表
}

controller层
 @Autowired
    private EmpService empService;
    @GetMapping("/emps")
    public Result page(@RequestParam(defaultValue = "1")Integer page,
                       @RequestParam(defaultValue = "10") Integer pageSize,
                       String name, Short gender,
                       @DateTimeFormat(pattern = "yyyy-MM-dd")LocalDate begin,
                       @DateTimeFormat(pattern = "yyyy-MM-dd")LocalDate end ){
        log.info("分页查询,参数:{},{},{},{},{},{}",page,pageSize,name,gender,begin,end);
        PageBean pageBean=empService.pagebean(page,pageSize,name, gender, begin, end);
        return Result.success(pageBean);
    }
service层
    PageBean pagebean(Integer start, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end);//接口
//实现类
    @Override
    public PageBean pagebean(Integer page, Integer pageSize,String name, Short gender, LocalDate begin, LocalDate end ) {
        Long count=empMapper.count();

        Integer start=(page-1)*pageSize;

        List<Emp> list=empMapper.page(start,pageSize, name, gender, begin,end);
        PageBean pageBean=new PageBean(count,list);
        return pageBean;
    }
mapper层
    public List<Emp> page(Integer start, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end);
//xml
   <select id="page" resultMap="emp">
        select * from emp
        <where>
            <if test="name != null and name !='' ">
                name like concat('%',#{name},'%')
            </if>
            <if test="gender != null">
                and gender = #{gender}
            </if>
            <if test="begin != null and end != null">
                and entrydate between #{begin} and #{end}
            </if>
        </where>
        limit #{start},#{pageSize}
    </select>

 

 分页插件PageHelper

依赖

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值