本文共 1650 字,大约阅读时间需要 5 分钟。
有时候会遇到像按照某个特定条件查询的问题,查出来的数据要进行分页展示
首先定义一个工具类
public static void startPage(BaseParam param) { int pageNum = 0; int pageSize = 0; if (param.getPageNum() != null && param.getPageSize() != null) { pageNum = param.getPageNum(); pageSize = param.getPageSize(); } else if (param.getPageNum() == null || param.getPageSize() == null) { log.error("StartPage Failed!"); }else { log.error("Failed"); } PageHelper.startPage(pageNum, pageSize); }
其中的Baseparam是定义的分页(注解用了lombok)
@Getter@Setter@ToString@NoArgsConstructor@AllArgsConstructorpublic class BaseParam { @Min(value = 1, message = "pageNum不能小于1") protected Integer pageNum; @Min(value = 1, message = "每页展示的条数不能为0") protected Integer pageSize;}
定义一个包装实体类继承Baseparam(下面这样)
public class FriendInfoParam extends BaseParam {}
Dao层
ListgetFriendInfoByTags(FriendInfo friendInfo);
xml语句
service层(里面的Common是工具类名)
public ListgetFriendInfoByTags(FriendInfoParam param) { Common.startPage(param); FriendInfo con = FriendInfo.builder().tags(param.getTags()).build(); return friendInfoDao.getFriendInfoByTags(con); }
controller层
@RequestMapping("/getInfoByTags") public MapgetFriendInfoByTags(@RequestBody FriendInfoParam param) { List data = friendInfoService.getFriendInfoByTags(param); return Common.parsePageList(data, param); }
前台传入需要的条件参数即可进行条件分页(其中pageNum , pageSize也要传入)
最后补充一点,前端显示页面的表单要将条件值传回后端才有用
转载地址:http://tawrn.baihongyu.com/