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

最后看看效果:

 

后台打印的信息:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM