Mybatis的分页插件,那么PageHelper一定会是你的首选。这一定会是使用最方便的分页插件。这个插件它支持任何复杂的单表,多表分页。
如果你使用 Maven,你只需要在 pom.xml 中添加下面的依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.2</version>
</dependency>
接着,在spring-mybatis.xml中是这样配置:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据库连接池 -->
<property name="dataSource" ref="dataSource" />
<!-- 加载mybatis的全局配置文件 -->
<property name="mapperLocations">
<array>
<value>classpath:mapping/*.xml</value>
</array>
</property>
<!-- <property name="configLocation" value="classpath:sqlMapConfig.xml" /> -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
helperDialect=mysql
</value>
</property>
</bean>
</array>
</property>
</bean>
配置结束后,进入正题,创建一个查询语句,用了pageHelper 查询语句与之前的一样。
select
<include refid="product"></include>
from product
where 1 = 1
查询一个product 的表:
/**
* 产品管理界面
*
* @param request
* @param model
* @return
*/
@RequestMapping(value = "productManage")
private String productManage(HttpServletRequest request, Model model, ProductDetail productDetail,
@RequestParam(required = true, defaultValue = "1") Integer page,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
PageHelper.startPage(page, pageSize);
List<ProductDetail> productDetails = productService.getProductManage(productDetail);
PageInfo<ProductDetail> p = new PageInfo<ProductDetail>(productDetails);
/**
* 返回产品查询信息
*/
model.addAttribute("productDetail", productDetail);
/**
* 返回产品信息集合
*/
model.addAttribute("productDetails", productDetails);
/**
* 分页配置信息返回
*/
model.addAttribute("page", p);
return "manage/product/productManage";
}
PageHelper.startPage(page, pageSize);
这段代码表示,程序开始分页了,page默认值是1,pageSize默认是10,意思是从第1页开始,每页显示10条记录。