SpringData JPA分页查询

首先我们需要知道SpringData JPA 的几个接口





其实看名字就大概懂了,也可以很方便的使用

首先我们的持久化层继承JpaRepository,相当于继承了增删改查的持久化层以及分页查询的持久化层

所以如果我们要使用分页查询 ,我们只需要直接调用


由一开始的图也可以看到Pageable的其中一个实现,直接新建一个对象传给你的持久层即可

下面是一个小Demo的例子

package Dao;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;

import Entity.Student;

//不需要使用事物注解,因为Spring已经默认帮我们开启 当然我们可以利用注解进行额外的设置
//对数据进行除了查询之外我们都需要加入事物注解不然报错 这是我个人测试
public interface StudentDao extends JpaRepository
   
   
    
    ,CommonDao{
	
	@Query("from Student s where s.sid = ?1")
	Student findById(String id);
//	两种写法一样
//	@Query("select * from Student s where s.sid = :id")
//	Student findById(@Param("id")String id);
	
	@Transactional
	@Query("delete from Student s where s.sid = ?1")
	@Modifying//更新或者删除需要额外加这个注解
	void deleteById(String id);
	
	//父类方法直接调用 findAll(Pageable pageable)
}


//Service 层
public Page
    
    
     
      findAll(Pageable pageable) {
		// TODO Auto-generated method stub
		return studentDao.findAll(pageable);
	}

//Controller
@RequestMapping("/findAll")
	public Page
     
     
      
       findAll(@RequestParam("f")int pageNum,@RequestParam("m")int size){
		return studentService.findAll(new PageRequest(pageNum, size));
	}

     
     
    
    
   
   
下面是返回结果:

{"content":[{"sid":"1","sname":"sam","sage":1},{"sid":"2","sname":"2","sage":2},{"sid":"3","sname":"3","sage":3}],"totalPages":1,"totalElements":3,"last":true,"number":0,"size":20,"numberOfElements":3,"sort":null,"first":true}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值