第一步、導包(或者導入坐標)
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> </dependency>
第二步、配置到spring 和mybait 整合的配置文件中
<!--3.創建sqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <!--配置mybatis 插件--> <property name="plugins"> <set> <!--配置pageHelper 分頁插件--> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <props> <!--方言:--> <prop key="helperDialect">mysql</prop> </props> </property> </bean> </set> </property> </bean>
第三步、方法調用
使用PageHelper.startPage 靜態方法調用startPage :
特點:
1. 靜態方法,傳遞兩個參數(當前頁碼,每頁查詢條數)
2. 使用pageHelper 分頁的時候,不再關注分頁語句,查詢全部的語句
3. 自動的對PageHelper.startPage 方法下的第一個sql 查詢進行分頁
PageHelper.startPage(1,5);
//緊跟着的第一個select 方法會被分頁
List<Country> list = countryMapper.findAll();
也就是說再Service層PageHelper.startPage(1,5);語句后一定是緊跟查詢語句。
Service層示例代碼
public PageInfo findPage(int page,int pageSize){ PageHelper.startPage(page,pageSize); List<Company> List=companyDao.selectAll(); PageInfo pageInfo = new PageInfo(list); return pageInfo; }
返回的信息就是pageInfo對象,該類是插件里的類,這個類里面的屬性還是值得看一看
public class PageInfo<T> implements Serializable { private static final long serialVersionUID = 1L; //當前頁 private int pageNum; //每頁的數量 private int pageSize; //當前頁的數量 private int size; //由於startRow 和endRow 不常用,這里說個具體的用法 //可以在頁面中"顯示startRow 到endRow 共size 條數據" //當前頁面第一個元素在數據庫中的行號 private int startRow; //當前頁面最后一個元素在數據庫中的行號 private int endRow; //總記錄數 private long total; //總頁數 private int pages; //結果集 private List<T> list; //前一頁 private int prePage; //下一頁 private int nextPage; //是否為第一頁 private boolean isFirstPage = false; //是否為最后一頁 private boolean isLastPage = false; //是否有前一頁 private boolean hasPreviousPage = false; //是否有下一頁 private boolean hasNextPage = false; //導航頁碼數 private int navigatePages; 傳智播客——專注於Java、.Net 和Php、網頁平面設計工程師的培訓 北京市昌平區建材城西路金燕龍辦公樓一層電話:400-618-9090 //所有導航頁號 private int[] navigatepageNums; //導航條上的第一頁 private int navigateFirstPage; //導航條上的最后一頁 private int navigateLastPage; }
第四步、在Controller中的使用是將Service層返回來的PageInfo對象放入request域中
在jsp頁面中的取值根據PageInfo中的get方法,使用EL表達式取出保存的值。