今天完成了首页文章的分页查询,使用的是pageHepler进行分页,下面说一下pagerhelper使用步骤,首先在pom.xm中引入pageHelper插件
<!-- MyBatis分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
1. 在 MyBatis 配置 xml 中配置拦截器插件
<!--
plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下:
properties?, settings?,
typeAliases?, typeHandlers?,
objectFactory?,objectWrapperFactory?,
plugins?,
environments?, databaseIdProvider?, mappers?
-->
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
<property name="param1" value="value1"/>
</plugin>
</plugins>
2、在spring配置文件中配置插件*(两处配置一个即可)*
<!-- 配置mybatis工厂-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"> </property>
<!-- 传入PageHelper的插件实现分页 -->
<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>
3、参数配置详情参照官方文档
https://pagehelper.github.io/docs/
4、简单使用
在要分页的数据集合上面插入一条语句
page代表当前页,pageSize代表每页条数,pageHelper会帮助我们自动分页
public List<Article> findArticleByPage(Integer page, Integer pageSize) {
PageHelper.startPage(page,pageSize);
return articleMapper.findArticleByPage();
}
controller层
将分页集合传入PageInfo中
List<Article> pages = articleService.findArticleByPage(page, pageSize);
PageInfo pageInfo = new PageInfo(pages);
request.setAttribute("pageInfo", pageInfo);
request.getRequestDispatcher("/index.jsp").forward(request, response);