一. 分页所需要的相关配置
①需要在pom.xml里添加依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
②需要在核心配置文件mybatis-config.xml里配置分页插件
<plugins>
<!--设置分页插件-->
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
二. 创建表
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(20),
`password` varchar(20),
`age` int,
`sex` char(1),
`email` varchar(20),
PRIMARY KEY (`id`),
UNIQUE KEY `username_UNIQUE` (`username`)
三. 编写JavaBean
在pojo目录下编写User类
package pojo;
public class User {
private Integer id;
private String username;
private String password;
private Integer age;
private Character sex;
private String email;
public User() {
}
public User(Integer id, String username, String password, Integer age, Character sex, String email) {
this.id = id;
this.username = username;
this.password = password;
this.age = age;
this.sex = sex;
this.email = email;
}
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 getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Character getSex() {
return sex;
}
public void setSex(Character sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", age=" + age +
", sex=" + sex +
", email='" + email + '\'' +
'}';
}
}
四. 编写Mapper接口
在mapper目录下创建一个PageMapper接口
package mapper;
import pojo.User;
import java.util.List;
public interface PageMapper {
List<User> queryAllUser();
}
五. 编写映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.PageMapper"> <!--为mapper接口的全类名-->
<select id="queryAllUser" resultType="User">
select * from user
</select>
</mapper>
六. 分页
1. 在查询功能之前开启分页
开启分页:PageHelper.startPage(int pageNum, int pageSize);pageNum是指设置当前页的页码,pageSize是设置页面显示多少条数据
2. 在查询功能之后获取分页相关信息
获取分页相关信息 :PageInfo< > page = new PageInfo<>(list, int navigatePages);list表示分页数据;navigatePages表示导航分页的数量(如果设置为5,则表示导航分页一只显示5页,12345、23456等)
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import mapper.PageMapper;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import pojo.User;
import utils.SqlSessionUtils;
import java.util.List;
public class PageTest {
@Test
public void testPage(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
PageMapper mapper = sqlSession.getMapper(PageMapper.class);
List<User> list1 = mapper.queryAllUser();
list1.forEach(user -> System.out.println(user)); //会显示所有数据
System.out.println("---------------------------------");
PageHelper.startPage(4,2); //设置分页
List<User> list2 = mapper.queryAllUser();
list2.forEach(user -> System.out.println(user)); //会显示第7和第8条数据
System.out.println("---------------------------------");
PageInfo<User> page = new PageInfo<>(list2,5); //设置导航页
System.out.println(page); //会显示所有具体的信息,此时其中的navigatepageNums=[2, 3, 4, 5, 6]
}
}