首页 > 数据库技术 > 详细

Spring data mongodb使用

时间:2019-03-02 12:06:38      阅读:164      评论:0      收藏:0      [点我收藏+]

一、定义接口继承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);
}

 

Spring data mongodb使用

原文:https://www.cnblogs.com/naixin007/p/10460393.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!