1.在educonfig配置类下面,配置分页插件bean(可配置在公共模块里边?)
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
pageTeacher对象
步骤
//分析:前端要传的参数,当前页,每页几条数据
//2.这里不需要实体类,路径带值自动解析
@ApiOperation(value="条件分页查询")
@GetMapping("pageTeacher/{current}/{limit}")
public R pageTeacher(
@ApiParam(name="current", value="当前页")
@PathVariable long current,
@ApiParam(name="limit", value="每页条数")
@PathVariable long limit){
//1.创建page对象
Page<EduTeacher> pageTeacher = new Page<>(current,limit);
//2.调用分页方法实现分页,分页数据封装到pageTeacher对象中
teacherService.page(pageTeacher,null);
//数据集合
List<EduTeacher> records = pageTeacher.getRecords();
//总记录数
long total = pageTeacher.getTotal();
return R.ok().data("total",total).data("records",records);
多条件组合查询分页
1.创建对应的多条件实体类
1.@ApiModelProperty(value = "开始时间",example = "2019-01-01 10:10:10")实体类注解example在swagger中显示
@Data
public class teacherQuery {
@ApiModelProperty(value="名称")
private String name;
@ApiModelProperty(value="级别")
private String level;
@ApiModelProperty(value = "开始时间",example = "2019-01-01 10:10:10")
private String beginTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
}
2.参数传递
3.当用
@RequestBody(required = false)
传递时,作为json对象传递(wrapper的学习),参数值可以为空
//根据条件查询分页
@ApiOperation("多条件组合查询")
@PostMapping("PageTeacherCondition/{current}/{limit}")
public R PageTeacherCondition(@PathVariable long current,
@PathVariable long limit,
@RequestBody TeacherQuery teacherQuery){
//1.创建分页对象
Page<EduTeacher> pageTeacher = new Page<>(current,limit);
//创建条件对象
QueryWrapper<EduTeacher> queryWrapper = new QueryWrapper<>();
//动态sql写条件
String name = teacherQuery.getName();
String level = teacherQuery.getLevel();
String beginTime = teacherQuery.getBeginTime();
String endTime = teacherQuery.getEndTime();
//判断值是否为空
if(!StringUtils.isEmpty(name)){
//添加条件,数据库的属性名
queryWrapper.like("name",name);
}
if(!StringUtils.isEmpty(level)){
//添加条件,数据库的属性名
queryWrapper.eq("level",level);
}
if(!StringUtils.isEmpty(beginTime)){
//添加条件,数据库的属性名
queryWrapper.ge("gmt_create",beginTime);
}
if(!StringUtils.isEmpty(endTime)){
//添加条件,数据库的属性名
queryWrapper.le("gmt_modified",endTime);
}
//排序
queryWrapper.orderByDesc("gmt_create");
//2.调用方法,将分页数据封装到pageTeacher中,实现条件查询
teacherService.page(pageTeacher,queryWrapper);
//从对象中得到数据
List<EduTeacher> records = pageTeacher.getRecords();
long total = pageTeacher.getTotal();
//将值加入map中
HashMap map = new HashMap();
map.put("total",total);
map.put("records",records);
return R.ok().data(map);
}
添加功能,
在service_base中,自动添加时间,注意唯一的属性值
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("gmtCreate", new Date(), metaObject);
this.setFieldValByName("gmtModified", new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("gmtModified", new Date(), metaObject);
}
}