六、PagingAndSortingRepository接口
前言:该接口提供了分页与排序的操作,该接口继承了CrudRepository
1、持久层接口:
public interface UserRepositoryPagingAndSorting extends PagingAndSortingRepository<Users,Integer> {
}
测试代码
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserRepositoryPagingAndSortingTest {@Autowiredprivate UserRepositoryPagingAndSorting userRepositoryPagingAndSorting;/*** RepositoryPagingAndSorting 接口排序*/@Testpublic void pagingAndSorting() {//order 定义排序规则Sort.Order order = new Sort.Order(Sort.Direction.DESC, "id");//sort对象封装了排序规则Sort sort = new Sort(order);List<Users> list = (List<Users>) userRepositoryPagingAndSorting.findAll(sort);
// Iterable<Users> list = userRepositoryPagingAndSorting.findAll(sort);for (Users users : list) {System.out.println(users);}}/*** RepositoryPagingAndSorting 接口 分页*/@Testpublic void pagingAndSorting2() {
// Pageable:封装了分页的参数,当前页,每页显示的条数,他的当前页是从0开始的
// PageRequest(page,size): page 当前页 size 每页显示的条数//第一页 显示数量2 如果不够2条就显示应有条数
// Pageable pageable = new PageRequest(0, 2);Pageable pageable = new PageRequest(1, 2);
// 返回值Page对象Page<Users> page = userRepositoryPagingAndSorting.findAll(pageable);System.out.println("总条数:" + page.getTotalElements());System.out.println("总页数:" + page.getTotalPages());List<Users> list = page.getContent();for (Users users : list) {System.out.println(users);}}/*** RepositoryPagingAndSorting 接口 排序+分页*/@Testpublic void pagingAndSorting3() {Sort sort = new Sort(Sort.Direction.DESC, "id");Pageable pageable = new PageRequest(0, 2, sort);Page<Users> page = userRepositoryPagingAndSorting.findAll(pageable);System.out.println("总条数:" + page.getTotalElements());System.out.println("总页数:" + page.getTotalPages());List<Users> list = page.getContent();for (Users users : list) {System.out.println(users);}}
}
本文源码下载:
github地址:
https://github.com/gb-heima/Spring-Boot-Actual-Combat/tree/master/parent/spring-boot-chapter-9