Springboot+jpa实现分页

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(
                        ""
                        + "" + json.content[i].id
                        + ""
                        + "" + json.content[i].name
                        + ""
                        + "" + json.content[i].category
                        + ""
                        + "" + json.content[i].productiondate
                        + ""
                        + "" + json.content[i].outdate
                        + ""
                        + "" + json.content[i].price
                        + ""
                        + "" + json.content[i].amount
                        + ""
                        + ""
                    );
                }
            }
            var pagenum = json.totalPages;
            $(".pagination").empty();
            $(".pagination").append('
  • Previous
  • '
    ); for (var j = 0; j < pagenum; j++) { $(".pagination").append('
  • + j + '">' + (j + 1) + '
  • '
    ); } $(".pagination").append('
  • Next
  • '
    ); $(".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来给分页内容排序

    你可能感兴趣的:(Springboot+jpa实现分页)