MyBatis-Plus的CURD(个人总结,仅供参考)

本文展示了如何使用SpringBoot实现数据的分页查询,包括无条件和有条件查询,以及更新、添加和删除操作。通过Params类接收分页参数,利用IPage接口进行分页处理,并返回封装好的Map数据。同时,提供了基于Lambda表达式的更新和查询示例。
摘要由CSDN通过智能技术生成

接收参数(根据实际情况修改,仅供参考):


public class Params
{
    private int pageNo;
    private int pageSize;

    public int getPageNo()
    {
        return this.pageNo;
    }

    public int getPageSize()
    {
        return this.pageSize;
    }
}

分页Map (根据你的前端同事要求的格式修改):

    /**
     * 创建返回分页数据的Map
     *
     * @param page
     * @return
     */
    public static Map createPageResultMap(IPage page)
    {
        Map resultData = new HashMap();
        resultData.put(Util.PAGE_DATA_LIST, page.getRecords());
        resultData.put(Util.PAGE_TOTAL, page.getTotal());
        resultData.put(Util.PAGE_SIZE, page.getSize());
        resultData.put(Util.PAGE_NUM, page.getCurrent());
        return resultData;
    }

1.Select(分页版本,非分页版本看官方文档即可)

1.1 获取所有数据(分页):

    @CrossOrigin
    @ApiOperation(value = "获取所有数据",
                  httpMethod = "POST",
                  produces = "application/json",
                  protocols = "http")
    @PostMapping("/get")
    public R get(
            @RequestBody
                    Params params)
    {
        IPage<Entity> page = new Page<>(params.getPageNo(), params.getPageSize());
        IPage<Entity> robot = this.service.page(page);

        return R.ok(Util.createPageResultMap(robot));
    }

1.2 根据条件获取(分页):

    @CrossOrigin
    @ApiOperation(value = "获取所有数据;若值为空,则获取全部数据",
                  httpMethod = "POST",
                  produces = "application/json",
                  protocols = "http")
    @PostMapping("/get")
    public R<IPage<Entity>> get(
            @RequestBody
                    GetPacketRestParams params)
    {
        IPage<Entity> page = new Page<>(params.getPageNo(), params.getPageSize());
        IPage<Entity> entityPage = this.service.page(page,
                Wrappers.<Entity>lambdaQuery()
                        .eq(StrUtil.isNotEmpty(params.getName()), Entity::getName,
                                params.getName())
                       .orderByAsc(Entity::getAge));
        return R.ok(Util.createPageResultMap(entityPage));
    }

2.UpdateOrAdd

2.1 无id

    @CrossOrigin
    @ApiOperation(value = "修改状态",
                  httpMethod = "POST",
                  produces = "application/json",
                  protocols = "http")
    @PostMapping("/modify")
    public R modify(
            @RequestBody
                     Params params)
    {
        LambdaUpdateWrapper<Entity> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
        lambdaUpdateWrapper.eq(Entity::getName, params.getName)
                .set(Entity::getStatus, params.getStatus);

        Boolean ref = this.service.update(null, lambdaUpdateWrapper);

        String result = null;
        if (!ref)
        {
            result = params.getName + " ,操作失败!";
            log.error("modifyStatus--" + result + " , name:" + params.getName);
            return R.error(result);
        }
        return R.ok(result);
    }

2.2 有id

    @CrossOrigin
    @ApiOperation(value = "添加数据;若存在,就修改",
                  httpMethod = "POST",
                  produces = "application/json",
                  protocols = "http")
    @PostMapping("/addOrUpdate")
    public R addOrUpdateTrashSlot(
            @RequestBody
                    Param params)
    {
        String result = null;

        Entity entity = new Entity();
        entity.setName(params.getName);
        entity.setId(params.getId());
        boolean ref = this.service.saveOrUpdate(entity);
        if (!ref)
        {
            result = slot + " ,操作失败!";
            log.error("AddOrUpdate--" + result);
            return R.error(result);
        }
        return R.ok(result);
    }

3.Delete

    @CrossOrigin
    @ApiOperation(value = "删除",
                  httpMethod = "POST",
                  produces = "application/json",
                  protocols = "http")
    @PostMapping("/delete")
    public R delete(
            @RequestBody
                    Param params)
    {
        String result = null;
        boolean ref = this.service
                .remove(Wrappers.<Entity>lambdaQuery().eq(Entity::getName, params.getName)
                        .eq(Entity::getId, params.getId()));
        if (!ref)
        {
            result = slot + " ,操作失败!";
            log.error("Delete--" + result);
            return R.error(result);
        }
        return R.ok(result);
    }

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值