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格式返回。

最后看看效果:

后台打印的信息:

原文地址:https://www.cnblogs.com/zhangxj/p/9816729.html