這是中國人自己寫的分頁的方法,真的厲害,源碼介紹裏全是中文,真得舒服!
這是官方的學習 網站:https://pagehelper.github.io/
Pagehelper
首先我們進行導包:
然後我們在spring-mybatis整合的時候,在factory的配置中加入如下代碼(這段代碼官方里有講解,如果感興趣可以自己查閱)
<bean id="factory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="typeAliasesPackage" value="com.bjsxt.pojo" />
<!--開啓PageHelper分頁插件-->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
<!--設置方言-->
helperDialect=mysql
<!--開啓合理化分頁參數-->
reasonable=true
</value>
</property>
</bean>
</array>
</property>
</bean>
然後我們就可以使用分頁插件啦!
// 開啓分頁查詢 page是當前頁數 rows是多少條數據(必須用這種方法)
PageHelper.startPage(page, rows);
//我需要對所有用戶信息分頁,這裏只需要查所有用戶信息
List<User> users = userMapper.selPage();
//將數據放在pageInfo中,可以隨意的獲得上一頁之類的數據了
return new PageInfo<>(users);
這個東西會自動的進行分頁,第一行代碼就是引用了分頁插件,第二行代碼是自己需要分頁的數據,第三行代碼就是單純的將這個集合放進pageInfo中,這裏會對我們的數據進行加工,我們就可以獲得任意我們想要獲得的數據啦!
如何在spring中進行測試
我們需要在test中加入註解
package com.bjsxt.test;
import com.bjsxt.pojo.User;
import com.bjsxt.service.MenuService;
import com.bjsxt.service.UserService;
import com.github.pagehelper.PageInfo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
//引入註解類
@RunWith(SpringJUnit4ClassRunner.class)
//找到所有的spring的配置xml
// (我這裏使用了applicationContext-mybatis,applicationContext-tx,applicationContext-service)
@ContextConfiguration("classpath:config/spring/*.xml")
public class TestSpring {
// 在這裏就可以使用註解進行對象創建了
@Autowired
private UserService userService;
@Test
public void test2() {
PageInfo<User> pageInfo = userService.userListByPage(2, 3);
System.out.println("總記錄數: " + pageInfo.getTotal());
System.out.println("總頁數: " + pageInfo.getPages());
System.out.println("當前頁數: " + pageInfo.getPageNum());
System.out.println("每頁顯示記錄數: " + pageInfo.getPageSize());
System.out.println("是否有上一頁: " + pageInfo.isHasPreviousPage());
System.out.println("上一頁: " + pageInfo.getPrePage());
System.out.println("是否有下一頁: " + pageInfo.isHasNextPage());
System.out.println("下一頁: " + pageInfo.getNextPage());
System.out.println("-----------------------------");
for (User user : pageInfo.getList()) {
System.out.println(user);
}
}
}