Mybatis-plus分頁查詢
阿新 • • 發佈:2021-01-03
技術標籤: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();
}
}
}