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() {
$.getJSON("product/showall/" + page, function (json) {
console.log(page);
if (page < json.pageable.pageSize) {
console.log(json);
$("#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" + page).addClass("active");
$("#nextpage").click(function () {
if (page <= pagenum - 1) {
page = page + 1;
console.log(page);
getdata();
}
})
$("#previosepage").click(function () {
if (page >= 1) {
page = page - 1;
console.log(page);
getdata();
}
})
$(".page-item").click(function () {
page = this.id.substr(4);
getdata();
})
})
}