当我们查询数据时,有时数据过多,需要我们分页查看,可以使用pagehelper
他的使用步骤是:
1、在pom.xml中导入依赖。
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2、在applicationContext.xml中写配置
<!-- 把交给IOC管理 SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 传入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、在执行sql前,使用PageHelper完成分页
public class IOrdersServiceImpl implements IOrdersService {
@Autowired
private IOrdersDao ordersDao;
@Override
public List<Orders> findAll() throws Exception {
//参数pageNum是页码值 参数pageSize代表是每页显示条数
PageHelper.startPage(1,5);
return ordersDao.findAll();
}
}
如果要用页面上能修改 显示条数,那么:
service:
@Override public List<Orders> findAllByPage(int page, int pageSize) throws Exception { PageHelper.startPage(page,pageSize); return ordersDao.findAll(); }
controller:
@RequestMapping("/findAll.do") public ModelAndView findAll( @RequestParam(name = "page", required = true, defaultValue = "1") Integer page, @RequestParam(name = "pageSize", required = true, defaultValue = "10") Integer pageSize) throws Exception { List<Orders> ordersList = ordersService.findAllByPage(page, pageSize); //PageInfo就是一个分页bean PageInfo pageInfo = new PageInfo(ordersList); ModelAndView mv = new ModelAndView(); mv.setViewName("order-list"); mv.addObject("pageInfo", pageInfo); return mv; }