PagingAndSortingRepository接口访问数据

       PagingAndSortingRepository继承自CrudRepository接口,所以除了拥有CrudRepository的功能之外,还增加了排序和分页查询的功能。

创建持久化类

程序清单:/jpa/src/main/java/com/dwx/bean/Book.java

package com.dwx.bean;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="t_book")
public class Book {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Integer bookId;			//图书编号
	private String bookName;		//图书名称
	private String category;		//类别
	private String author;			//作者
	private String press;			//出版社
	private Double price;			//价格
	public Integer getBookId() {
		return bookId;
	}
	public void setBookId(Integer bookId) {
		this.bookId = bookId;
	}
	public String getBookName() {
		return bookName;
	}
	public void setBookName(String bookName) {
		this.bookName = bookName;
	}
	public String getCategory() {
		return category;
	}
	public void setCategory(String category) {
		this.category = category;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public String getPress() {
		return press;
	}
	public void setPress(String press) {
		this.press = press;
	}
	public Double getPrice() {
		return price;
	}
	public void setPrice(Double price) {
		this.price = price;
	}
}

定义数据访问接口

程序清单:/jpa/src/main/java/com/dwx/repository/BookRepository.java

package com.dwx.repository;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.dwx.bean.Book;
public interface BookRepository extends PagingAndSortingRepository<Book, Integer> {

}

定义业务层类

程序清单:/jpa/src/main/java/com/dwx/service/BookService.java

package com.dwx.service;
import javax.annotation.Resource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import com.dwx.bean.Book;
import com.dwx.repository.BookRepository;
@Service
public class BookService {
	@Resource
	private BookRepository bookRepository;
	
	public Iterable<Book> findAllSort(Sort sort){
		return bookRepository.findAll(sort);
	}
	
	public Page<Book> findAll(Pageable page){
		return bookRepository.findAll(page);
	}
}

定义控制器类

程序清单:/jpa/src/main/java/com/dwx/controller/BookController.java

package com.dwx.controller;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.dwx.bean.Book;
import com.dwx.service.BookService;
@RestController
public class BookController {
	@Resource
	private BookService bookService;
	
	@RequestMapping("/sort")
	public Iterable<Book> sortBook(){
		Sort sort=new Sort(Sort.Direction.DESC,"bookId");
		Iterable<Book> bookSort=bookService.findAllSort(sort);
		return bookSort;
	}
	
	@RequestMapping("/pager")
	public List<Book> sortPagerBook(int pageIndex){
		Sort sort=new Sort(Sort.Direction.DESC,"bookId");
		Pageable page=PageRequest.of(pageIndex-1, 2,sort);
		Page<Book> bookDatas=bookService.findAll(page);
		List<Book> books=bookDatas.getContent();
		return books;
	}
}

测试应用

启动Spring Boot项目,访问以下地址:http://localhost:8080/sort

测试分页查询第一页,访问以下地址:http://localhost:8080/pager?pageIndex=1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云淡风轻58

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值