mybatis分頁外掛的使用
阿新 • • 發佈:2018-12-14
基本原理
sqlsessionFactory -> sqlSession-> executor -> mybatis sql statement
通過mybatis plugin 增加攔截器,然後拼裝分頁
使用方法
一、引入依賴
<!-- 分頁外掛依賴 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.0</version> </dependency>
二、增加配置檔案
import com.github.pagehelper.PageHelper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.Properties; @Configuration public class MyBatisConfig { @Bean public PageHelper pageHelper(){ PageHelper pageHelper = new PageHelper(); Properties p = new Properties(); p.setProperty("offsetAsPageNum","true"); p.setProperty("rowBoundsWithCount","true"); p.setProperty("reasonable","true"); pageHelper.setProperties(p); return pageHelper; } }
三、包裝類
PageHelper.startPage(page, size); PageInfo<VideoOrder> pageInfo = new PageInfo<>(list); 例如:某個視訊介面 @RestController @RequestMapping("/api/v1/video") public class VideoController { @Autowired private VideoService videoService; /** * 分頁介面 * * @param page 當前第幾頁,預設是第一頁 * @param size 每頁顯示幾條 * @return */ @GetMapping("page") public Object pageVideo(@RequestParam(value = "page", defaultValue = "1") int page, @RequestParam(value = "size", defaultValue = "3") int size) { PageHelper.startPage(page, size); // 進行分頁 List<Video> list = videoService.findAll(); //從資料庫獲取查詢的所有結果 PageInfo<Video> pageInfo = new PageInfo<>(list); Map<String, Object> data = new HashMap<>(); data.put("total_size", pageInfo.getTotal());//總條數 data.put("total_page", pageInfo.getPages());//總頁數 data.put("current_page", page);//當前頁 data.put("data", pageInfo.getList());//資料 return data; } }