PageHelper是一款非常好用的分頁插件,它和Mybatis工作在一起,可以大幅提升開發(fā)效率。PageHelper是通過Mybatis的攔截器插件原理實現(xiàn)的。
1. pom.xml配置
在我們的Spring Boot工程中增加PageHelper的配置,請記住PageHelper是和Mybatis工作在一起的,因此務(wù)必要引入Mybatis的jar包。
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
2. 向Spring容器中注入PageHelper
@Configuration
public class PageHelperConfiguration {
private static final Logger log = LoggerFactory.getLogger(PageHelperConfiguration.class);
@Bean
public PageHelper pageHelper() {
log.info("------Register MyBatis PageHelper");
PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
p.setProperty("reasonable", "true");
//通過設(shè)置pageSize=0或者RowBounds.limit = 0就會查詢出全部的結(jié)果。
p.setProperty("pageSizeZero", "true");
pageHelper.setProperties(p);
return pageHelper;
}
}
3. 在代碼中使用PageHelper
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserMapper userMapper;
@RequestMapping(value = "/queryall.do", method = RequestMethod.GET)
public PageInfo<User> queryAll( @RequestParam(value = "pageNum", required = false, defaultValue="1") Integer pageNum,
@RequestParam(value = "pageSize", required = false, defaultValue="10") Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> list = userMapper.selectAllUsers();
PageInfo<User> pageInfo = new PageInfo<User>(list);
return pageInfo;
}
}
其余代碼請參考:http://www.itdecent.cn/p/9e8a7c07c60b
Mybatis分頁插件PageHelper官網(wǎng):https://github.com/pagehelper/Mybatis-PageHelper
Mybatis之插件原理:[http://blog.csdn.net/hupanfeng/article/details/9247379]