Mybatis-plus 多表+分页+联合查询

1、controller层

@ApiOperation("分页查询项目")
@GetMapping("/pageList")
public ServerResponse pageList(@RequestParam(required = true) int page ,
                               @RequestParam(defaultValue = "10")int size,
                               QueryVo queryVo) {
    QueryWrapper<ProjectVo> wrapper = new QueryWrapper<>();
    Page<ProjectVo> pages = new Page<>(page, size);
    List<ProjectVo> iPage = projectService.getProjectList(queryVo,pages);
    pages.setRecords(iPage);
    return ServerResponse.ofSuccess(pages);
}

2、service层

/**
 *查询项目列表
 * @return
 */
List<ProjectVo> getProjectList(QueryVo queryVo, Page<ProjectVo> page);

3、impl层

@Override
    public List<ProjectVo> getProjectList(QueryVo queryVo, Page<ProjectVo> page) {
        return projectMapper.getProjectList(queryVo,page);
    }

4、mapper层

 /**
     *查询项目列表
     * @return
     */
    List<ProjectVo> getProjectList(@Param("queryVo") QueryVo queryVo, Page<ProjectVo> page);

5、xml层

<select id="getProjectList" resultType="com.lyk.coursearrange.vo.ProjectVo">
        SELECT
            a.id,
            a.project_no,
            a.project_name,
            a.major_no,
            b.major_name
        FROM
            lb_project a,
            lb_major b
        WHERE
            a.major_no = b.major_no
        <if test="queryVo.majorName != null and queryVo.majorName != ''">
            AND b.major_name LIKE CONCAT('%',#{queryVo.majorName},'%')
        </if>
        <if test="queryVo.searchContent != null and queryVo.searchContent != ''">
            AND CONCAT(a.project_no, a.project_name) LIKE CONCAT('%',#{queryVo.searchContent},'%')
        </if>
    </select>

6、执行结果

{
  "code": 0,
  "message": "success",
  "data": {
    "records": [
      {
        "id": 1,
        "projectNo": "K1001",
        "projectName": "力学基础",
        "majorNo": "Z1001",
        "majorName": "工程力学"
      },
      {
        "id": 4,
        "projectNo": "K1004",
        "projectName": "语文基础1",
        "majorNo": "Z1002",
        "majorName": "大学语文"
      }
    ],
    "total": 2,
    "size": 10,
    "current": 1,
    "orders": [],
    "searchCount": true,
    "pages": 1
  }
}

7、简单明了,有问题可以留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

看见太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值