Springboot+jpa实现分页
一.Repository
public interface ProductRepository extends CrudRepository<Product,String> {
List<Product> findByName(String name);
Optional<Product> findById(String id);
Iterable<Product> findAll(Sort sort);
Page<Product> findAll(Pageable pageable);
}
二.Service
@Service
public class ProductService {
@Resource
ProductRepository pr;
public Iterable<Product> findall(Pageable pageable) {
return pr.findAll(pageable);
}
public List<Product> findByName(String name) {
return pr.findByName(name);
}
public Optional<Product> findById(String id){
return pr.findById(id);
}
public Product save(Product product){
return pr.save(product);
}
public void deleteById(String id){
pr.deleteById(id);
}
}
三.Controller
@RequestMapping("showall/{page}")
public Iterable<Product> findall(@PathVariable("page") String page) {
Pageable pageable = new PageRequest(Integer.parseInt(page),3);
//参数:第几页内容,分几页
Iterable<Product> ip = ps.findall(pageable);
return ip;
}
四.JS
function getdata(pagen) {
$.getJSON("product/showall/" + pagen, function (json) {
console.log("===" + pagen);
if (pagen < json.pageable.pageSize) {
$("#tbodymainbtn").empty();
for (var i = 0; i < json.content.length; i++) {
$("#tbodymainbtn").append(
"<tr id='tridval" + i + "'>"
+ "<td>" + json.content[i].id
+ "</td>"
+ "<td>" + json.content[i].name
+ "</td>"
+ "<td>" + json.content[i].category
+ "</td>"
+ "<td>" + json.content[i].productiondate
+ "</td>"
+ "<td>" + json.content[i].outdate
+ "</td>"
+ "<td>" + json.content[i].price
+ "</td>"
+ "<td>" + json.content[i].amount
+ "</td>"
+ "</td></tr>"
);
}
}
var pagenum = json.totalPages;
$(".pagination").empty();
$(".pagination").append('<li class="page-item"><a class="page-link" href="#" id="previosepage">Previous</a></li>');
for (var j = 0; j < pagenum; j++) {
$(".pagination").append(' <li class="page-item" id="page' + j + '"><a class="page-link" href="#">' + (j + 1) + '</a></li>');
}
$(".pagination").append(' <li class="page-item"><a class="page-link" href="#" id="nextpage">Next</a></li>');
$(".page-item").removeClass("active");
$("#page" + pagen).addClass("active");
$("#nextpage").click(function () {
var pagenum1 = Number(pagen) + Number(1);
console.log("---" + pagenum1);
if(pagen<pagenum){
getdata(pagenum1);
}
})
$("#previosepage").click(function () {
var pagenum2 = Number(pagen) - Number(1);
console.log("---" + pagenum2);
if(pagen>0){
getdata(pagenum2);
}
})
$(".page-item").click(function () {
page = this.id.substr(4);
getdata(page);
})
})
}
五.其他
Sort sort = new Sort(Sort.Direction.DESC,"createTime");
Pageable pageable = new PageRequest(pageNumber,pageSize,sort);
通过设置sort来给分页内容排序