SpringBoot——spring-data-jpa之分页查询

SpringBoot——spring-data-jpa之分页查询SpringBoot——spring-data-jpa之分页查询

大家好,又见面了,我是你们的朋友全栈君。

service代码

 package com.youyou.address.service;

import com.youyou.address.dao.ContacterDao;
import com.youyou.address.dao.ContacterEORepo;
import com.youyou.address.entity.ContacterEO;
import org.springframework.beans.factory.annotation.Autowired;
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.data.querydsl.QPageRequest;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
public class ContacterService {

    @Autowired
    private ContacterDao dao;

    @Autowired
    private ContacterEORepo contacterEORepo;

    public void insertOne(ContacterEO contacterEO) {
        dao.insertOne(contacterEO);
    }

    public List<ContacterEO> findAll() {
        return dao.findAll();
    }

    /**
     * 保存联系人
     *
     * @param contacterEO
     */
    public void saveOne(ContacterEO contacterEO) {
        contacterEORepo.save(contacterEO);
    }

    /**
     * 分页查询
     * @param page
     * @return
     */
    public Page<ContacterEO> findByPage(PageRequest page) {
        Page<ContacterEO> all = contacterEORepo.findAll(page );
        return all;
    }

}

controller代码如下:

 package com.youyou.address.controller;

import com.youyou.address.entity.ContacterEO;
import com.youyou.address.service.ContacterService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@Api(description = "联系人接口")
@RestController
@RequestMapping(value = "/contacter")
public class ContacterController {

    @Autowired
    private ContacterService service;

    @ApiOperation(value = "新增")
    @GetMapping("/add")
    public ContacterEO add(ContacterEO contacterEO) {
        System.out.println("添加一个联系人");

        service.saveOne(contacterEO);

        return contacterEO;
    }

    @ApiOperation(value = "查询所有")
    @GetMapping("/findAll")
    public List<ContacterEO> findAll() {
        return service.findAll();
    }

    @ApiOperation(value = "分页查询")
    @GetMapping("/findByPage")
    public Page<ContacterEO> findByPage(int pageNo, int size ,Sort.Direction direction) {
        PageRequest page = PageRequest.of(pageNo, size, Sort.by(direction, "name"));
        return service.findByPage(page);
    }

}

核心代码就是

 PageRequest page = PageRequest.of(pageNo, size, Sort.by(direction, "name"));

pageNo:页码(从0开始)

size:每页条数

direction:排序标识,即ASC或DESC

name:需要排序的字段

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106463.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 坑爹的MongoDB

    坑爹的MongoDB

    2021年9月7日
    59
  • gerrit用法

    gerrit用法

    2021年6月19日
    143
  • 交互式脚本_交互式和脚本式的区别

    交互式脚本_交互式和脚本式的区别带你打开脚本的大门,领略语言之美

    2022年8月16日
    9
  • 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑

    【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑本篇文章中,我们将一起学习OpenCV中边缘检测的各种算子和滤波器——Canny算子,Sobel算子,Laplace算子以及Scharr滤波器。文章中包含了五个浅墨为大家准备的详细注释的博文配套源代码。在介绍四块知识点的时候分别一个,以及最后的综合示例中的一个。依然是是放出一些程序运行截图吧:效果图看完,我们来唠唠嗑。首先,需要说明的是,浅墨这篇文章最后的示例代码是采用两周前刚刚发布的2.4.9来书写的。里面的lib都已经改成了2.4.9版本的。如果大家需要运行的话,要么配置好2.4.9.要么把浅墨

    2022年5月30日
    32
  • 无人驾驶安全报告分析

    摘要随着经济的快速发展,各国汽车保有量急剧增加,促使城市路况更加严峻繁杂,城市交通正面临着前所未有的巨大压力。加之疲劳驾驶、酒后驾驶等人为因素,使世界各国的交通事故率逐年上升,甚至多于世界大战死亡人数。随着汽车技术、信息通信技术与智能控制技术的高效融合,集自动控制、人工智能、体系结构视觉设计等众多技术于一体的无人驾驶汽车应运而生。通过在车辆内安装智能操纵控制系统与感应设备来获取信息用以控制车…

    2022年4月7日
    41
  • AjaxPro2完整入门教程[通俗易懂]

    AjaxPro2完整入门教程[通俗易懂]网上关于AjaxPro的完整教程太少,所以这里我利用下自己的空余时间写一篇较为完整的AjaxPro教程,希望大家能够提出更多宝贵的建议

    2022年7月4日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号