*官方文档: * https://pagehelper.github.io/docs/howtouse
以本站获取虎牙直播的api为demo
需要的jar包
- pagehelper.jar
- sql的解析工具, jsqlparser.jar
maven引入依赖
1 2 3 4 5 6
| <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>LATEST</version> </dependency>
|
引入之后, maven会帮我们自动下载那两个jar包
配置拦截插件
如果我们只使用mybatis, 可以在mybatis-config.xml配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <property name="helperDialect" value="mysql"/> <property name="reasonable" value="true"/> </plugin> </plugins>
|
如果我们使用的是ssm, 我们可以在mybatis-config.xml配置上述参数
也可以在applicationContext.xml配置下列参数, 注意plugins的位置. 注意: 如果mybatis配置了, spring就不能再配置了.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <props> <prop key="helperDialect">mysql</prop> <prop key="reasonable">true</prop> </props> </property> </bean> </array> </property> </bean>
|
后台调用
控制器
1 2 3 4 5 6
| @RequestMapping("/huya") public String huya(@RequestParam(value = "page", defaultValue = "1") Integer page, @RequestParam(value = "pageSize", defaultValue = "60") Integer pageSize, Model model){ String huyas = huyaService.findAll(page, pageSize); model.addAttribute("huya", huyas); return "/huya.jsp"; }
|
HuyaService
1 2 3 4 5 6 7 8 9
| public String findAll(int page, int pageSize) { PageHelper.startPage(page, pageSize); PageInfo pageInfo = new PageInfo(huyaDao.findAll()); StringBuilder builder = new StringBuilder(); List<Huya> list = pageInfo.getList(); builder.append("huya({pages: \"" + pageInfo.getPages() + "\", msg: \""); return dealList(builder, list); }
|
HuyaDao
1 2
| @Select("select * from huya") List<Huya> findAll();
|
pageInfo的一些参数我们需要知道
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| private int pageNum; private int pageSize; private int size; private int startRow; private int endRow; private int pages; private int prePage; private int nextPage; private boolean isFirstPage; private boolean isLastPage; private boolean hasPreviousPage; private boolean hasNextPage; private int navigatePages; private int[] navigatepageNums; private int navigateFirstPage; private int navigateLastPage;
|
其他功能, 以后慢慢研究……..