作者:球球小白痴_693 | 来源:互联网 | 2021-10-31 13:26
这篇文章主要介绍了MybatisPlus自定义Sql实现多表查询的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
前言
前段时间看同事的代码,发现他用Layui+MybatisPlus做分页查询做得很规整,认真看了下代码发现这种方式不仅适用于与Layui做分页查询,在任何时候需要多表联查的时候都可以用到。
以下以Layui分页查询作为参考,在实际应用中可以灵活使用。
分页查询VO对象
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LayuiData {
private Integer code=0;
private Long count;
private String msg="ok";
private Object data;
}
Controller
这里的“keyWord”和“registerTime”是后台页面可以查询的字段,也就是普通的参数,可以灵活变通。
@GetMapping("/getClientList")
@ResponseBody
public LayUIResult getAll(
@RequestParam(name = "page", required = true, defaultValue = "1") int num,
@RequestParam(name = "limit", required = true, defaultValue = "10") int size,
String keyWord, String registerTime){
IPage
Service
IPage
ServiceImpl
这里的QueryWrapper内的实例是
@Override
public IPage
Mapper
格式要求,QueryWrapper前面加上@param,括号里的Constants.WRAPPER内容就是"ew",对应xml文件里的ew
IPage> findClientPage(Page> page,@Param(Constants.WRAPPER) QueryWrapper> wrapper);
XML内容
重点在于我们用${ew.customSqlSegment}放在sql语句里,它可以直接把我们的wrapper里的查询数据等同于where查询添加进去
总结
这种方式相当于在业务层已经做好了参数判断,不用再在xml文件内用“if”标签判断了。
除了在与Layui做分页查询外,在别的需要参数请求的地方也都可以变通的用这种方法,在使用MybatisPlus时使用这种方式可以使代码更简洁,更清晰。
除此之外,在需要多表联查的时候,这种方式是非常适用的。
MybatiPlus文档
官方文档里面也做介绍,版本需要大于3.0.7
官方链接:使用 Wrapper 自定义SQL
到此这篇关于MybatisPlus自定义Sql实现多表查询的示例的文章就介绍到这了,更多相关MybatisPlus 多表查询内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!