1.导入坐标(包)
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>3.7.5</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.1</version>
</dependency>
2.配置分页插件plugins与方言
<!-- 配置分页助手插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 配置方言 mysql-->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
3.代码实现
3.1准备user表
3.2User实体类
public class User {
private Integer id;
private String username;
private String email;
private String password;
private Long phoneNum;
private Date birthday;
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void setPhoneNum(Long phoneNum) {
this.phoneNum = phoneNum;
}
public Long getPhoneNum() {
return phoneNum;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", email='" + email + '\'' +
", password='" + password + '\'' +
", phoneNum=" + phoneNum +
", birthday=" + birthday +
'}';
}
3.3UserMapper
public interface UserMapper {
public List<User> findAll();
}
3.4UserMapper.xml
<select id="findAll" resultType="user">
select * from sys_user
</select>
3.5UserService实现
@Test
public void testDemo() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
PageHelper.startPage(2,3);
List<User> all = mapper.findAll();
PageInfo<User> pageInfo=new PageInfo<User>(all);
for (User user : pageInfo.getList()) {
System.out.println(user);
}
System.out.println(pageInfo);
sqlSession.commit();
sqlSession.close();
}
日志
User{
id=4, username='小明', email='[email protected]', password='111111', phoneNum=13449484984, birthday=Wed Dec 24 00:00:00 CST 1997}
User{
id=5, username='小李', email='[email protected]', password='111111', phoneNum=13449484984, birthday=Wed Dec 24 00:00:00 CST 1997}
User{
id=6, username='小红', email='[email protected]', password='111111', phoneNum=13449484984, birthday=Wed Dec 24 00:00:00 CST 1997}
PageInfo{
pageNum=2, pageSize=3, size=3, startRow=4, endRow=6, total=6, pages=2, list=Page{
pageNum=2, pageSize=3, startRow=3, endRow=6, total=6, pages=2, reasonable=false, pageSizeZero=false}, firstPage=1, prePage=1, nextPage=0, lastPage=2, isFirstPage=false, isLastPage=true, hasPreviousPage=true, hasNextPage=false, navigatePages=8, navigatepageNums=[1, 2]}
PageInfo属性详解
pageNum:当前为第几页
pageSize:每页的数据行数
startRow:当前页数据从第几条开始
endRow:当前页数据从第几条结束
pages:总页数
prePage:上一页页数
nextPage:下一页页数
hasPreviousPage:是否有上一页
hasNextPage:是否有下一页
navigatepageNums:所有页码的数组