MybatisPlus手写sql分页

        最近做的项目因为是使用的sqlserver,分页的写法比mysql复杂很多,所以现在有多表查询的时候需要用到框架自带的分页查询,但之前都是使用的单表的分页查询,那接下来就分享一下多表的分页怎么处理

1.控制层

/**
     * 獲取子企業列表
     */
    @GetMapping("/getCustomerByPid")
    public ReqVo<Page<TBasCustomer>> getCustomerByPid(@RequestParam Integer pid,@RequestParam String name,@RequestParam Integer current,@RequestParam Integer size,HttpServletRequest req){
        ReqVo<Page<TBasCustomer>> reqVo=new ReqVo<>();
        Page<TBasCustomer> page = tBasCustomerService.getCustomerByPid(pid,name,current,size,req);
        reqVo.setData(page);
        return reqVo;
    }

2.实现层

 @Override
    public Page<TBasCustomer> getCustomerByPid(Integer pid, String name,Integer current,Integer size,HttpServletRequest req) {
        Page page =new Page();
        page.setCurrent(current);
        page.setSize(size);
        Integer uid = userUtils.getUserInfo(req).getId();
        Page<TBasCustomer> resultPage =this.baseMapper.getCustomerPageByPid(page,pid,uid,name);
        return resultPage;
    }

3.Mapper

 /**
     * 獲取子企業
     * @param
     * @return
     */
    Page<TBasCustomer> getCustomerPageByPid(Page page,@Param("pid") Integer pid,@Param("uid")Integer uid,@Param("name")String name);

4.xml配置文件

 <select id="getCustomerPageByPid" resultType="io.github.talelin.latticy.model.TBasCustomer">
        select c.* from T_Bas_Customer c inner join T_SysUsersCustomerScope cs on c.id=cs.CustomId where pid=#{pid} and cs.uid=#{uid}
        <if test=' name!=null and name!="" '>
            and c.cname like  concat('%',#{name,jdbcType=VARCHAR},'%')
        </if>
    </select>

5.打印结果

 6.返回的数据

{
    "code": "200",
    "message": "成功",
    "data": {
        "records": [
            {
                "id": 17375,
                "cname": "海底捞火锅店",
                "ename": null,
                "nickname": null,
                "keyid": "0F5D1B89-2A7C-4505-9F3D-002850CDC075",
                "pid": 10000003
            },
            {
                "id": 17376,
                "cname": "复星诊断科技(上海)有限公司",
                "ename": null,
                "nickname": null,
                "keyid": "4660D9AE-03FA-42A0-A4D8-005DBC808D6A",
                "pid": 10000003
            },
            {
                "id": 17377,
                "cname": "试用企业",
                "ename": null,
                "nickname": null,
                "keyid": "AE2B1857-D777-4B12-BF31-00C1499148A6",
                "pid": 10000003
            },
            {
                "id": 17378,
                "cname": "腾讯云计算(北京)有限责任公司",
                "ename": null,
                "nickname": null,
                "keyid": "E13277ED-B221-4840-9A58-00C1D2745379",
                "pid": 10000003
            },
            {
                "id": 17379,
                "cname": "博彦科技",
                "ename": null,
                "nickname": null,
                "keyid": "ECDD181F-D7D9-4D98-B83F-032FF8B392EA",
                "pid": 10000003
            },
            {
                "id": 17380,
                "cname": "阿斯利康(无锡)贸易有限公司",
                "ename": null,
                "nickname": null,
                "keyid": "908C00A0-ED69-4A7B-8747-08B0F99BD4AB",
                "pid": 10000003
            },
            {
                "id": 17381,
                "cname": "上海药明生物技术有限公司",
                "ename": null,
                "nickname": null,
                "keyid": "638DB1BE-E33B-4438-B236-0925C7B7F2DA",
                "pid": 10000003
            },
            {
                "id": 17382,
                "cname": "阿斯利康医药科技(北京)有限公司",
                "ename": null,
                "nickname": null,
                "keyid": "8FE1BC1C-D2B0-44FD-B5D9-097CF0E8DA34",
                "pid": 10000003
            },
            {
                "id": 17383,
                "cname": "吉县三农国际商贸有限公司",
                "ename": null,
                "nickname": null,
                "keyid": "82AC30F2-8D5E-42D4-B5CB-0B76D3417EB8",
                "pid": 10000003
            },
            {
                "id": 17384,
                "cname": "上海乾扬传媒有限公司",
                "ename": null,
                "nickname": null,
                "keyid": "A5851DB8-B53D-4893-A697-0C0FBE5A63DD",
                "pid": 10000003
            }
        ],
        "total": 204,
        "size": 10,
        "current": 0,
        "orders": [],
        "optimize_count_sql": true,
        "hit_count": false,
        "count_id": null,
        "max_limit": null,
        "search_count": true,
        "pages": 21
    }
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值