分页查询:
total是总记录数,rows是数据列表
实体类(PageBean):
//分页查询结果的封装类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
private Long total;//总记录数
private List rows;//数据列表
}
EmpController:
@GetMapping("/emps")
public Result page(@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10")Integer pageSize){
//该注解用于设置默认值,若page为空,则设置为1,pageSize同理
PageBean pageBean=empService.page(page,pageSize);
return Result.success(pageBean);
}
EmpService:
@Override
public PageBean page(Integer page, Integer pageSize) {
//获取总记录数
Long count=empMapper.count();
//获取分页查询的结果列表
Integer start=(page-1)*pageSize;
List<Emp> empList=empMapper.page(start,pageSize);//要传递2个参数,第一个是起始索引,第二个是每页大小
//封装pagebean对象
PageBean pageBean=new PageBean(count,empList);//利用上面计算出的,进行全参构造
return pageBean;
}
EmpMapper:
//查询总记录数
@Select("select count(*) from emp")
public Long count();
//分页查询获取列表数据
@Select("select * from emp limit #{start},#{pageSize}")
public List<Emp> page(Integer start,Integer pageSize);//参数分别为起始索引,和每页的大小
----------------------------------------------------
分页插件PageHelper:
controller层不变
EmpService:
@Override
public PageBean page(Integer page, Integer pageSize) {
//设置分页参数
PageHelper.startPage(page,pageSize);
//执行查询
List<Emp> empList=empMapper.list();
Page<Emp> p=(Page<Emp>) empList;
//封装pagebean对象
PageBean pageBean=new PageBean(p.getTotal(),p.getResult());
return pageBean;
}
EmpMapper:
//员工信息查询
@Select("select * from emp")
public List<Emp> list();
-----------------------------------------------------
条件分页查询:
EmpController:
@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){
//该注解用于设置默认值,若page为空,则设置为1,pageSize同理
PageBean pageBean=empService.page(page,pageSize,name,gender,begin,end);
return Result.success(pageBean);
}
EmpService:
@Override
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 pageBean=new PageBean(p.getTotal(),p.getResult());
return pageBean;
}
EmpMapper:
public List<Emp> list(String name, Short gender, LocalDate begin, LocalDate end);
EmpMapper.xml:
<select id="list" resultType="com.itheima.pojo.Emp">
select *
from emp
<where>
<if test="name!=null">
name like concat('%',#{name},'%')
</if>
<if test="gender!=null">
and gender=#{gender}
</if>
<if test="begin!=null">
and begin=#{begin}
</if>
<if test="end!=null">
and end=#{end}
</if>
</where>
</select>
-------------------------------------------
删除员工:
EmpController:
@DeleteMapping("/emps/{ids}")
public Result delete(@PathVariable List<Integer> ids){
empService.delete(ids);
return Result.success();
}
EmpService:
@Override
public void delete(List<Integer> ids) {
empMapper.delete(ids);
}
EmpMapper:
void delete(List<Integer> ids);
EmpMapper.xml:
<delete id="delete">
delete
from emp
where id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>