首页 > 其他分享 >Mybatis-plus分页查询和条件查询通用写法- 动态接口参数

Mybatis-plus分页查询和条件查询通用写法- 动态接口参数

时间:2022-10-13 17:34:01浏览次数:77  
标签:queryWrapper 分页 查询 pageParam plus Mybatis teacherQueryVo String

一 查询条件VO

/**
* @className: TeacherQueryVo
* @description: 讲师查询条件封装
* @date: 2020/11/18
* @author: cakin
*/
@ApiModel("Teacher查询对象")
@Data
public class TeacherQueryVo implements Serializable {
   private static final long serialVersionUID = 1L;

   @ApiModelProperty(value = "讲师姓名")
   private String name;

   @ApiModelProperty(value = "讲师级别")
   private Integer level;

   @ApiModelProperty(value = "开始时间")
   private String joinDateBegin;

   @ApiModelProperty(value = "结束时间")
   private String joinDateEnd;
}

二 讲师控制器中的分页和条件查询

/**
* 功能描述:分页和条件查询
*
* @param page           当前页码
* @param limit          每页记录数
* @param teacherQueryVo 查询条件封装
* @return R 返回给前端的数据
* @author cakin
* @date 2020/11/18
*/
@ApiOperation("讲师分页列表")
@GetMapping("list/{page}/{limit}")
public R listPage(@ApiParam(value = "当前页码", required = true) @PathVariable Long page,
                  @ApiParam(value = "每页记录数", required = true) @PathVariable Long limit,
                  @ApiParam("讲师列表查询对象") TeacherQueryVo teacherQueryVo) {
    // 分页参数
    Page<Teacher> pageParam = new Page<>(page, limit);
    IPage<Teacher> pageModel = teacherService.selectPage(pageParam, teacherQueryVo);
    List<Teacher> records = pageModel.getRecords();
    long total = pageModel.getTotal();
    return R.ok().data("total", total).data("rows", records);
}

三 讲师服务层实现

/**
* @className: TeacherServiceImpl
* @description: 讲师 服务实现类
* @date: 2020/11/18
* @author: cakin
*/
@Service
public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> implements TeacherService {
    /**
     * 功能描述:显示分页查询列表
     *
     * @author cakin
     * @date 2020/11/18
     * @param pageParam 分页查询参数
     * @param teacherQueryVo 条件查询参数
     * @return IPage<Teacher> 分页信息
     */
    @Override
    public IPage<Teacher> selectPage(Page<Teacher> pageParam, TeacherQueryVo teacherQueryVo) {
        // 1 排序:按照sort字段排序
        QueryWrapper<Teacher> queryWrapper = new QueryWrapper<>();
        queryWrapper.orderByAsc("sort");
        // 2 有分页查询 无条件查询
        if (teacherQueryVo == null) {
            return baseMapper.selectPage(pageParam, queryWrapper);
        }
        // 3 构造条件查询
        String name = teacherQueryVo.getName();
        Integer level = teacherQueryVo.getLevel();
        String joinDateBegin = teacherQueryVo.getJoinDateBegin();
        String joinDateEnd = teacherQueryVo.getJoinDateEnd();
        if (!StringUtils.isEmpty(name)) {
            queryWrapper.likeRight("name", name);
        }
        if (level != null) {
            queryWrapper.eq("level", level);
        }
        if (!StringUtils.isEmpty(joinDateBegin)) {
            queryWrapper.ge("join_date", joinDateBegin);
        }
        if (!StringUtils.isEmpty(joinDateEnd)) {
            queryWrapper.le("join_date", joinDateEnd);
        }
        // 2 有分页查询 有条件查询
        return baseMapper.selectPage(pageParam, queryWrapper);
    }

转载:https://blog.csdn.net/chengqiuming/article/details/109786365

标签:queryWrapper,分页,查询,pageParam,plus,Mybatis,teacherQueryVo,String
From: https://www.cnblogs.com/hefeng2014/p/16788934.html

相关文章

  • mybatis-plus批量插入性能提升
    最近在引入mybatis-plus后发现其批量插入的性能不高,所以与mybatis的<foreach/>标签生成的sql插入性能做了对比测试环境:6核12线程,16g内存本地数据库,没有网络传输数据库......
  • 【Mysql】 分页查询及链接查询以及自关联
     #分页#limitstart,count#查询前5个数据#查询id6-10(包含)的顺序#每页显示两个,#查询只显示前两个select*fromstudentswheregender=1limi......
  • 【Mysql】 查询数据排序以及聚合函数
    #排序#orderby字段#asc从小到大排序,即升序#desc从大到小排序,即降序#查询年龄在18到34岁之间的男性,按照年龄从小到大排序select*fromstudentswhere......
  • 【Mysql】 数据库高级查询
     #查询#查询所有字段#select*from表名select*fromstudents;select*fromclass;#查询指定字段#select列1,列2,.....from表名selectname,agefromstudents......
  • DQL基础查询
    createTABLEstudent1(idINT,--编号NAMEVARCHAR(20),--姓名ageINT,--年龄sexVARCHAR(5),--性别addressVARCHAR(100),--地址mathINT,--数学eng......
  • MySQL基础架构及一条SQL查询语句是如何执行的
    MySQL基础架构及一条SQL查询语句是如何执行的该文摘抄自林晓斌老师的文章MySQL的基本架构示意图,从中你可以清楚地看到SQL语句在MySQL的各个功能模块中的执行过程......
  • 达梦dba_segments指定表名查询到的大小都包含哪些数据
    一、结论dba_segments指定表名查询到的段大小包含索引、约束、表字段数据(包含LOB字段)(1)表(不包含LOB字段)创建默认分配2个簇,1个簇用于存放表结构及字段数据,1个簇用于存放clus......
  • 使用 ADManager Plus管理Microsoft Office 365
    Microsoft365浪潮席卷了全球各种规模和职能的组织。它使进入云变得容易且具有成本效益,而无需放弃熟悉的Microsoft服务器和客户端应用程序。其成功和在全球范围内广泛采......
  • kettle用时间变量做表名查询
    需求:表名为*****_yearmonth类型整体结构  第一步,获取系统信息  选择一下就可以第二步,获取想要的日期字符串格式  第三步,将其设置成变量   ......
  • 子查询不同情况
    子查询不同情况1子查询的结果是单行单列的子查询可以作为条件,使用运算符去判断运算符:>,>=,<,<=,=查询员工工资小于平均工资的人子查询的结果是多行单列的......