从头搭建一个SpringBoot项目,至少应该引入哪些配置?( 三 )
PageVo@Data public class PageVo<T> { /** * 分页数据 */ @ApiModelProperty(value = "http://news.hoteastday.com/a/分页数据") private List<T> records; /** * 总条数 */ @ApiModelProperty(value = "http://news.hoteastday.com/a/总条数") private Integer total; /** * 总页数 */ @ApiModelProperty(value = "http://news.hoteastday.com/a/总页数") private Integer pages; /** * 当前页 */ @ApiModelProperty(value = "http://news.hoteastday.com/a/当前页") private Integer current; /** * 查询数量 */ @ApiModelProperty(value = "http://news.hoteastday.com/a/查询数量") private Integer size; /** * 设置当前页和每页显示的数量 * @param pageForm 分页表单 * @return 返回分页信息 */ @ApiModelProperty(hidden = true) public PageVo<T> setCurrentAndSize(PageForm<?> pageForm){ BeanUtils.copyProperties(pageForm,this); return this; } /** * 设置总记录数 * @param total 总记录数 */ @ApiModelProperty(hidden = true) public void setTotal(Integer total) { this.total = total; this.setPages(this.total % this.size > 0 ? this.total / this.size + 1 : this.total / this.size); } }
/** * 获取用户列表 * @param listUserForm 表单数据 * @return 用户列表 */ @Override public PageVo<UserVo> listUser(ListUserForm listUserForm) { PageVo<UserVo> pageVo = new PageVo<UserVo>.setCurrentAndSize(listUserForm); pageVo.setTotal(countUser(listUserForm.getStatus)); pageVo.setRecords(userMapper.listUser(listUserForm.calcCurrent)); return pageVo; } /** * 获取用户数量 * @param status 状态 * @return 用户数量 */ private Integer countUser(String status){ return count(new QueryWrapper<User>.eq("status",status)); }
/** * 获取用户列表 * @param listUserForm 表单数据 * @return 用户列表 */ @ApiOperation("获取用户列表") @GetMapping("/listUser") @ApiResponses( @ApiResponse(code = 200, message = "操作成功", response = UserVo.class) ) public ResultVo listUser(@Validated ListUserForm listUserForm){ return ResultVoUtil.success(userService.listUser(listUserForm)); }
注意的点
- PageVo在实例化的时候需要设置当前页和每页显示的数量 可以调用setCurrentAndSize完成 。
- 进行分页查询的时候 , 需要计算偏移量 。 listUserForm.calcCurrent
- 假如查询第1页每页显示10条记录 , 前端传递过来的参数是current=1&&size=10 , 这个时候limit 1,10没有问题 。
- 假如查询第2页每页显示10条记录 , 前端传递过来的参数是current=2&&size=10 , 这个时候limit 2,10就有问题 , 实际应该是limit 10,10 。 calcCurrent的作用就是如此 。
自带的分页查询在大量数据下 , 会出现性能问题 。
常用工具类常用工具类可以根据自己的开发习惯引入 。
异常处理异常处理的大致流程主要如下 。
- 异常信息抛出 -> ControllerAdvice 进行捕获格式化输出内容
- 霍金|霍金留下三个预言,每一个都事关人类安危,第一个已经开始应验
- 三星|德媒:中国或许将成为下一个全球创新总部!
- 数字货币|你的“花呗”额度降了吗?“借呗”整改后下一个来了,有用户直接被停
- Windows|New Windows 11操作系统壁纸灵感来源,新的视角,一个新的时代
- 奥陌陌|奥陌陌:人类观察到的第一个外星文明迹象?留下了哪些未解之谜?
- 联想|拆解联想电脑,没有任何一个核心零部件是国产的,塑料壳和螺丝是国产的
- 物联网|物联网解决方案的前端开发
- 女娲|一个模型通杀8大视觉任务,一句话生成图像视频、P图视频处理都行
- UFO|詹姆斯韦伯遇到了一个小问题,全面测试导致发射延迟了几天
- 芯片|一个指令查电脑使用痕迹!动过什么文件,看得清清楚楚