java 索取了多表联合查询分页_Mybatis Plus 多表关联分页查询

本文介绍了如何使用MybatisPlus结合分页插件实现多表查询的分页操作。通过一个具体的SQL查询示例,展示了在XML文件中编写SQL语句,并在Dao层、Service层和Controller层的调用过程。该方法简化了SQL编写,实现了基于实体类的分页查询。
摘要由CSDN通过智能技术生成

Mybaits Plus 做单表分页直接用实体类的方式就可以了,简单到连SQL语句都省了,这里介绍下关联表查询的方式结合Mybatis Plus 中的分页插件对多表查询进行分页。

我的SQL语句示例:

SELECT

COUNT(1) total,

u. NAME,

u.job,

date_sub(

date_sub(

date_format(now(), '%y-%m-%d'),

INTERVAL extract(DAY FROM now()) DAY

),

INTERVAL 0 MONTH

) AS lastDay

FROM

sys_tttt m

LEFT JOIN sys_xxx u ON m.receiver = u.id

WHERE

PERIOD_DIFF(

date_format(now(), '%Y%m'),

date_format(m.end_time, '%Y%m')

) = 1

AND m. STATUS = '3'

AND u. NAME LIKE '%%'

GROUP BY

m.receiver

ORDER BY

total DESC;

直接将SQL语句写到XML文件中

SELECT

COUNT(1) total,

u. NAME,

u.job,

date_sub(

date_sub(

date_format(now(), '%y-%m-%d'),

INTERVAL extract(DAY FROM now()) DAY

),

INTERVAL 0 MONTH

) AS lastDay

FROM

sys_ttt m

LEFT JOIN sys_xxx u ON m.receiver = u.id

WHERE

PERIOD_DIFF(

date_format(now(), '%Y%m'),

date_format(m.end_time, '%Y%m')

) = 1

AND m. STATUS = '3'

AND u. NAME LIKE CONCAT('%',#{userName},'%')

GROUP BY m.receiver ORDER BY total DESC

Dao 层

List> selectXXX(IPage> page , @Param("userName") String userName);

Service 层

public PageUtils xxxPage(Map params) {

//名称 String userName = (String)params.get("userName");

IPage> page = new Query>().getPage(params);

List> list = baseMapper.selectXXX(page , userName);

page.setRecords(list);

return new PageUtils(page);

}

Controller层

@ApiOperation(value = "接口描述")

@RequestMapping(value = "/xxxTest")

public ResultData findXxxTest(@RequestParam Map params){

try { PageUtils page = testService.xxxPage(params);

return ResultData.ok().put("data", page);

}catch (Exception e){

if(e.getMessage() == null) {

return ResultData.ok().put("data",new HashMap<>());

}

return ResultData.error();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值