分页条件查询

本文介绍了如何在SpringBoot项目中,使用EmpMapper接口进行员工数据的分页查询,包括Controller层的HTTP请求处理和Service层对EmpMapper的调用,以及XML配置的SQL查询语句。
摘要由CSDN通过智能技术生成

EmpMapper

 public List<Emp> list(String name, Short gender, LocalDate begin, LocalDate end);

EmpController

@Slf4j
@RestController
public class EmpController {
    @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.page(page,pageSize,name,gender,begin,end);
return Result.success(pageBean);
    }



}

EmpService

public interface EmpService {
    PageBean page(Integer page,Integer pageSize,String name,Short gender,LocalDate start,LocalDate end);
}

EmpServiceImpl


@Service
public class EmpServiceImpl implements EmpService {
    @Autowired
    private EmpMapper empMapper;
/*
    @Override
*/

    /*public PageBean page(Integer page, Integer pageSize) {
        Long count = empMapper.count();
        Integer start = (page - 1) * pageSize;
       List<Emp> empList = empMapper.page(start,pageSize);

       PageBean pageBean = new PageBean(count,empList);
       return pageBean;
    }*/

    public PageBean page(Integer page,Integer pageSize,String name,Short gender,LocalDate begin,LocalDate end) {

        PageHelper.startPage(page,pageSize);

        List<Emp> empList = empMapper.list(name,gender,begin,end);
        Page<Emp> p = (Page<Emp>) empList;

        PageBean pageBean = new PageBean(p.getTotal(),p.getResult());
        return pageBean;

    }
}

xml文件配置

<select id="list" resultType="com.yyy.pojo.Emp">
select *
from tlias.emp
<where>
      <if test = "name != null and name != 'nul">
          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>
order by update_time desc

</select>
</mapper>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值