1. 程式人生 > 其它 >Mybatis-plus分頁查詢

Mybatis-plus分頁查詢

技術標籤:Mybatis-plus


/**
 * <p>
 * 講師 前端控制器
 * </p>
 *
 * @author testjava
 * @since 2020-12-19
 */
@Api(description="講師管理")
@RestController   //這個註解會把物件轉化為json資料
@RequestMapping("/eduservice/teacher")
@CrossOrigin
public class EduTeacherController {

    @Autowired
    EduTeacherService eduTeacherService;
//1 查詢講師表的所有資料 //使用的是rest風格 查詢get 新增post 刪除delete 修改put @ApiOperation(value = "所有講師列表") @GetMapping("/findAll")//這裡的/加不加都對 public R findAll() { //使用的是rest風格 查詢get 新增post 刪除delete 修改put List<EduTeacher> list = eduTeacherService.list(null)
; //自定義異常的丟擲 try { //int i = 1 / 0; }catch (Exception e) { throw new GuliException(400, "除0異常"); } return R.ok().data("items", list); } //2 邏輯刪除講師方法 @ApiOperation(value = "根據ID刪除講師") @DeleteMapping("{id}"
) public R removeTeacher(@ApiParam(name = "id", value = "講師ID", required = true)@PathVariable String id) { boolean b = eduTeacherService.removeById(id); if(b){ return R.ok(); }else { return R.error(); } } //分頁查詢 //current當前頁 //limit每一頁的記錄數 @GetMapping("/pageTeacher/{current}/{limit}") public R pageListTeacher(@PathVariable long current, @PathVariable long limit) { //建立page物件 Page<EduTeacher> page = new Page<>(current, limit); //呼叫方法的時候,底層封裝,把分頁所有資料封裝到page物件裡面 eduTeacherService.page(page, null); long total = page.getTotal();//獲取總的記錄數 List<EduTeacher> records = page.getRecords();//返回每頁資料的list集合 return R.ok().data("total", total).data("rows", records); } //條件查詢帶分頁 @PostMapping("/pageteacherCondition/{current}/{limit}") public R pageteacherCondition(@PathVariable long current, @PathVariable long limit, @RequestBody(required = false) TeacherQuery teacherQuery) { //建立一個page物件 Page<EduTeacher> page = new Page<>(current, limit); QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>(); //多條件組合查詢 mybatis學過 動態sql //判斷條件值是否為空 如果不為空拼接條件值 String name = teacherQuery.getName(); System.out.println(name); Integer level = teacherQuery.getLevel(); String begin = teacherQuery.getBegin(); String end = teacherQuery.getEnd(); if(!StringUtils.isEmpty(name)) { wrapper.like("name", name); } if(level != null) { wrapper.eq("level", level); } if(!StringUtils.isEmpty(begin)) { wrapper.ge("gmt_create", begin);//建立時間要大於開始時間 } if(!StringUtils.isEmpty(end)) { wrapper.le("gmt_create", end);//建立時間要小於開始時間 } wrapper.orderByDesc("gmt_create");//按id升序排列 eduTeacherService.page(page, wrapper);//會把查詢結果封裝到page裡面 long total = page.getTotal();//獲取總的記錄數 List<EduTeacher> records = page.getRecords();//返回每頁資料的list集合 System.out.println(records); return R.ok().data("total", total).data("rows", records); } @PostMapping("/addTeacher") public R addTeacher(@RequestBody EduTeacher eduTeacher) {//這裡不寫@RequestBody其實也可以 boolean save = eduTeacherService.save(eduTeacher); if(save) { return R.ok(); }else { return R.error(); } } //根據講師id來查詢 @GetMapping("getTeacher/{id}") public R getTeacher(@PathVariable String id) { EduTeacher byId = eduTeacherService.getById(id); System.out.println(byId); return R.ok().data("teacher", byId); } //根據id修改teacher //還是根據前端填寫表單用post @PostMapping("/updateTeacher") public R updateTeacher(@RequestBody EduTeacher eduTeacher) { boolean b = eduTeacherService.updateById(eduTeacher); if(b) { return R.ok(); }else { return R.error(); } } }