栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

代码模板:springboot+Mybatis-Plus分页

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

代码模板:springboot+Mybatis-Plus分页

代码模板:Mybatis-Plus分页

每次写分页都很烦,记录一下实现分页查询的全过程,以后想写分页可以直接改模板

1、

首先分页肯定是要记录页码和页面大小的,所以不如直接整合成一个类,让后面需要分类的对象继承

@Data
public class BasePageDto {
    private Integer pageNum=1;
    private Integer pageSize=20;
}

2、

然后创建具体的需要实现分页的类

这里继承BasePageDto对象后加了一条属性userName,这样就可以做到模糊查询用户名的同时分页,也就是说这个类里放条件

@Data
public class UserListPageDto extends BasePageDto {
//    用户名
    private String userName;
}

3、

创建传输类

@Data
public class UserDto {
    private String userId;

    
    private String userName;

    
    private String userPassword;

    
    private Integer userFrozen;

    
    private Integer userPublishArticle;
}

4、

构建返回类

此类作用为构建向前端返回的数据对象,包括页数、大小、总页数、总记录数和数据list

@Data
public class CommonPage {
    private Integer pageNumber;
    private Integer pageSize;
    private Integer totalPage;
    private Long total;
    private List list;

    
    public static  CommonPage restPage(List list) {
        CommonPage result = new CommonPage();
        Page pageInfo = new Page().setRecords(list);
        result.setTotalPage((int) pageInfo.getPages());
        result.setPageNumber((int) pageInfo.getCurrent());
        result.setPageSize((int) pageInfo.getSize());
        result.setTotal(pageInfo.getTotal());
        result.setList(pageInfo.getRecords());
        return result;
    }

    
    public static  CommonPage restPage(IPage pageInfo) {
        CommonPage result = new CommonPage();
        result.setTotalPage((int) pageInfo.getPages());
        result.setPageNumber((int) pageInfo.getCurrent());
        result.setPageSize((int) pageInfo.getSize());
        result.setTotal(pageInfo.getTotal());
        result.setList(pageInfo.getRecords());
        return result;
    }
}

5、

编写controller

这里默认按照MybatisPlus代码生成器的风格生成了dao层与service层

形式1:视图解析器模板:

    @Resource
    IUserService userService;
    @Resource
    @GetMapping("/list")
    public String userList(@Valid UserListPageDto userListPageDto, Model model){
        //步骤1、获取分页条件
        Integer pageNum = userListPageDto.getPageNum();
        Integer pageSize = userListPageDto.getPageSize();
        String userName = userListPageDto.getUserName();
        //步骤2:构建分页对象并添加条件
        IPage userPage = new Page<>(pageNum,pageSize);
        LambdaQueryWrapper userLambdaQueryWrapper = Wrappers.lambdaQuery().orderByDesc(User::getUserRegisterTime);
        if (StrUtil.isNotBlank(userName)) {
            userLambdaQueryWrapper.like(User::getUserName, userName);
            model.addAttribute("userName", userName);
        }
        IPage userIPage = userService.page(userPage,userLambdaQueryWrapper);
        //步骤3、返回
        model.addAttribute("userPage", CommonPage.restPage(userIPage));
        return "admin/userList";
    }

形式2:返回json

Result类的构建可以参考我的上一篇博客Result模板

    @Resource
    IUserService userService;
    @Resource
    @GetMapping("/list")
    public Result userList(@Valid UserListPageDto userListPageDto){
        //步骤1、获取分页条件
        Integer pageNum = userListPageDto.getPageNum();
        Integer pageSize = userListPageDto.getPageSize();
        String userName = userListPageDto.getUserName();
        //步骤2:构建分页对象并添加条件
        IPage userPage = new Page<>(pageNum,pageSize);
        LambdaQueryWrapper userLambdaQueryWrapper = Wrappers.lambdaQuery().orderByDesc(User::getUserRegisterTime);
        if (StrUtil.isNotBlank(userName)) {
            userLambdaQueryWrapper.like(User::getUserName, userName);
            model.addAttribute("userName", userName);
        }
        IPage userIPage = userService.page(userPage,userLambdaQueryWrapper);
        //步骤3、返回
        return CommonPage.restPage(userIPage);
    }

附录:

service层与dao层

public interface UserMapper extends BaseMapper {

}

public interface IUserService extends IService {

}

@Service
public class UserServiceImpl extends ServiceImpl implements IUserService {

}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006155.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号