SpringData学习03

滴水穿石

1、

CrudRepository 是 Repository 类的一个子集,主要实现了一些 CRUD 的方法

示例:

   @Transactional
    public void savePersons(List<Person> pList){
        pRepository.save(pList);
    }

单元测试

  @Test
    public void savesTest(){
        
        List<Person> plist = new ArrayList<>();
        Person p = null;
        for(int i = 'a' ; i < 'z' ; i++){
            p = new Person();
            p.setName(i + "" + i);
            p.setAge(i);
            p.setBrith(new Date());
            p.setEmail(i + "" + i + "@cfb.com");
            plist.add(p);
        }
        pService.savePersons(plist);
    }

结果: 测试通过,入库成功

 2、

 

PagingAndSortingRepository 是 CrudRepository  的子类,多了分页方法
示例:

service层

public Page<Person> findForPage(PageRequest pRequest){
        return pRepository.findAll(pRequest);
    }

单元测试

  @Test
    public void findForPage() {
        int page = 3;
        int size = 5;
        PageRequest pRequest = new PageRequest(page, size);
        Page<Person> plist = pService.findForPage(pRequest);
        System.out.println("总条数: " + plist.getTotalElements());
        System.out.println("总页数: " + plist.getTotalPages());
        System.out.println("当前页数: " + plist.getNumber());
        System.out.println("当前页面记录数: " + plist.getNumberOfElements());
        System.out.println("当前页面List: " + plist.getContent());
    }

测试结果

由此可以看出 page 是从 0 开始计算的

关于排序

修改上边的分页中的代码

//关于排序
        Order order1 = new Order(Direction.DESC, "id");
        Order order2 = new Order(Direction.ASC,"email");
        Sort sort = new Sort(order1,order2);
        PageRequest pRequest = new PageRequest(page, size, sort);

 测试结果:

以上的分页无法通过条件查询

怎么破?继续往下

—————————————————————————————————————————————————————————————————————————

无论如何,心平气和

原文地址:https://www.cnblogs.com/cfb513142804/p/7234018.html