springboot案例-员工管理

文章详细介绍了在SpringMVC中使用PageBean和PageHelper进行分页查询的方法,包括基本分页、带有条件的分页以及员工信息的删除操作,展示了如何在服务层和Mapper接口中处理这些操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分页查询:

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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值