依賴:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
SqlSessionFactory插件導(dǎo)入:
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<prop key="helperDialect">oracle</prop>
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>
在service中調(diào)用dao中查找的方法上添加PageHelper.startPage(1,2);
然后對所查詢到的結(jié)果進(jìn)行封裝:PageInfo<Product> pageInfo = new PageInfo<Product>(products);
想實現(xiàn)百度導(dǎo)航欄的效果(前4后3)就在封裝pageinfo時指定參數(shù)navigatePages,前端中 通過遍歷navigatepageNums(數(shù)組)實現(xiàn)頁碼添加,或者通過navigateFirstPage(開始頁碼)和navigateLastPage(結(jié)束頁碼)實現(xiàn)
PageInfo屬性
//當(dāng)前頁
private int pageNum;
//每頁的數(shù)量
private int pageSize;
//當(dāng)前頁的數(shù)量
private int size;
//由于startRow和endRow不常用,這里說個具體的用法
//可以在頁面中"顯示startRow到endRow 共size條數(shù)據(jù)"
//當(dāng)前頁面第一個元素在數(shù)據(jù)庫中的行號
private int startRow;
//當(dāng)前頁面最后一個元素在數(shù)據(jù)庫中的行號
private int endRow;
//總記錄數(shù)
private long total;
//總頁數(shù)
private int pages;
//結(jié)果集
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;
//導(dǎo)航頁碼數(shù)
private int navigatePages;
//所有導(dǎo)航頁號
private int[] navigatepageNums;
//導(dǎo)航條上的第一頁
private int navigateFirstPage;
//導(dǎo)航條上的最后一頁
private int navigateLastPage;