zoukankan      html  css  js  c++  java
  • Springboot2+bootstrap-table1.12.1+MybatisPlus3.0 后台物理分页实现

    分页可以说是使用最广的功能。bootstap-table是一款很好用的grid开源免费插件。

    MybatisPlus功能很强大,效率很高,本文用它们来实现记录分页的功能。

    特别提示一下:bootstrap-table属性定义中必须要有这句:

    contentType:"application/x-www-form-urlencoded; charset=UTF-8", 不然后台不能接受到数据。

     -------------------------------------------------------------------------------------------------------------------

    bootstrap-table的网址:

    http://bootstrap-table.wenzhixin.net.cn/zh-cn/

    MybatisPlus的网址:

    http://mp.baomidou.com/

    分页原理:前台传送页码(pageIndex)和每页的记录数(pageSize)到后台,后台用这两个参数提取数据库的相应记录return给前台,另外后台每次要get数据库的物理记录总数return前台,前台根据记录总数分配分页的1、2、3等分页按钮以供用户方便查询。

    好,Let's go!

    先看一下程序的结构图

    1、首先创建一个MybatisPlus分页的拦截器MybatisPlusConfig,如果不创建,MybatisPlus就不会在sql上增加分页的语句。

    @EnableTransactionManagement
    @Configuration
    @MapperScan("cn.jhxcom.web.demo.mapper")
    public class MybatisPlusConfig {
         /**
         * 分页插件
         */
        @Bean
        public PaginationInterceptor paginationInterceptor() {
            return new PaginationInterceptor();
        }    
    }

    2、建立UserPlusMapper:

    public interface UserPlusMapper extends BaseMapper<User> {

    }
    哈哈,看着很简单哈,但User已经具备了CURD的功能了;

    3、建立UserPlusService 服务接口,以便Controller使用:

     public interface UserPlusService {
        public IPage<User> selectUserPage(PageParams params) ;
        public long selectUserCount(PageParams params) ;
    }

    这里要注意的是selectUserPage返回的是MabatisPlus内置的IPage类,这里如果按照官方文档写要报错。

    4、建立UserPlusService的实现类:

    @Service
    public class UserPlusServiceImpl implements UserPlusService {
        @Autowired
        UserPlusMapper userPlusMapper ;

        @Override
        public IPage<User> selectUserPage(PageParams params) {
            return userPlusMapper.selectPage(
                    new Page<User>(params.getPageIndex(),params.getPageSize()),
                    null
                    );
        }

        @Override
        public long selectUserCount(PageParams params) {
            return userPlusMapper.selectCount(null);
                }
    }

    5、建立后台接收前台传参的封装类PageParams接收pageIndex和pageSize两个参数。

     好,临门一脚就交给Controller吧:

    6、Controller:

            @PostMapping("getplus_tabledata")
            public PageInfoResult<User> getTableData( PageParams pageParams ){
                System.out.println(pageParams);
                PageInfoResult<User> pir = new PageInfoResult<User>();
                pir.setRows(userPlusService.selectUserPage(pageParams).getRecords());
                pir.setTotal(userPlusService.selectUserCount(pageParams));
                pir.setCode(0);
                return pir ;
            }  

    注:Controller类明上有@RestController ,所以数据是以json格式返回。

    最后看看效果:

    后台打印的信息:

  • 相关阅读:
    python 匿名函数lambda()
    python列表推导式
    python数组的基本操作一(添加,扩展,插入)
    Python的数字类型
    Python初识以及Windows安装教程
    字典简单使用
    two sum(LeetCode)
    python读写文件
    C++ volatile关键字(转)
    实验一
  • 原文地址:https://www.cnblogs.com/zhangxj/p/9816729.html
Copyright © 2011-2022 走看看