SpringBoot ——JPA分页查询

JpaRepository提供了如下表所述的内置查询:

方法 描述
List findAll() 返回所有实体
List findAll(Iterable ids) 返回指定id的所有实体
T getOne(ID id) 根据id返回对应的实体,如果未找到,则返回空
List findAll(Sort sort) 返回所有实体,按照指定顺序排序返回
Page findAll(Pageable pageable) 返回实体列表,实体的offset和limit通过pageable来指定

主要讲讲第5个方法:
Pageable接口:

PageRequest是Pageable的实现类,可以通过以下工厂方法创建:

public static PageRequest of(int page,int size)

public static PageRequest of(int page,int size,Sort sort)

public static PageRequest of(int page,int size,Direction direction,String ... properties)

page从0开始,表示查询页,size是个数

Page类:

int getTotalPages()    获取总的页数

long getTotalElements()   返回总数

List getContent()     返回某页的结果集

例子:

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    @Column(length = 255)

    private String name;
    @Column(length = 2)
    private String sex;
    @Column(length = 255)
    private String address;
    public User(){}

    public User(int id, String name, String sex, String address) {
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.address = address;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}
@Repository
public interface UserRepository extends JpaRepository<User,Integer> {
}
    @Test
    public void contextLoads() {
        PageRequest pageReques=PageRequest.of(0,2);   //获取第1页的两条记录
        Page<User>  page=userRepository.findAll(pageReques);
        List<User> users=page.getContent();
        for(User t:users)
            System.out.println(t);
     }

猜你喜欢

转载自blog.csdn.net/ljcgit/article/details/86562103