Spring data mongodb使用

一、定义接口继承MongoRepository

/**
 * 父类MongoRepository的两个泛型参数分别是模型类和其主键
 */
public interface CmsPageRepository extends MongoRepository<CmsPage,String> {
    
}

二、引用接口

 @Autowired
    private CmsPageRepository cmsPageRepository;

三、默认基础方法

● 添加

@Test
public void testInsert(){
//定义实体类
CmsPage cmsPage = new CmsPage();
cmsPage.setSiteId("s01");
cmsPage.setTemplateId("t01");
cmsPage.setPageName("测试页面");
cmsPage.setPageCreateTime(new Date());
List<CmsPageParam> cmsPageParams = new ArrayList<>();
CmsPageParam cmsPageParam = new CmsPageParam();
cmsPageParam.setPageParamName("param1");
cmsPageParam.setPageParamValue("value1");
cmsPageParams.add(cmsPageParam);
cmsPage.setPageParams(cmsPageParams);
cmsPageRepository.save(cmsPage);
System.out.println(cmsPage);
}

● 删除

//删除
@Test
public void testDelete() {
     cmsPageRepository.deleteById("5b17a2c511fe5e0c409e5eb3");
}

● 修改

    @Test
    public void testUpdate() {
        Optional<CmsPage> optional = cmsPageRepository.findById("5abefd525b05aa293098fca6");
        //optional是jdk1.8引入的对象,作用是自带的isPresent方法可以非空判断
        if (optional.isPresent()) {
            CmsPage cmsPage = optional.get();
            cmsPage.setPageAliase("ccc");
            CmsPage save = cmsPageRepository.save(cmsPage);
            System.out.println(save);
        }
    }

● 查所有

    @Test
    public void testFindAll() {
        List<CmsPage> list = cmsPageRepository.findAll();
        System.out.println(list);
    }

● 分页查询

    @Test
    public void testFindPage() {
        int page = 0; //从0开始
        int size = 10;
        Pageable pageable = PageRequest.of(page, size);
        Page<CmsPage> all = cmsPageRepository.findAll(pageable);
        System.out.println(all);
    }

● 自定义Dao方法。在接口按一定规则定义方法,不需要写实现类

如下: 按照findByXXX,findByXXXAndYYY、countByXXXAndYYY等规则定义方法,实现查询操作。

public interface CmsPageRepository extends MongoRepository<CmsPage,String> {
//根据页面名称查询
CmsPage findByPageName(String pageName);
//根据页面名称和类型查询
CmsPage findByPageNameAndPageType(String pageName,String pageType);
//根据站点和页面类型查询记录数
int countBySiteIdAndPageType(String siteId,String pageType);
//根据站点和页面类型分页查询
Page<CmsPage> findBySiteIdAndPageType(String siteId,String pageType, Pageable pageable);
}

猜你喜欢

转载自www.cnblogs.com/naixin007/p/10460393.html