Springboot工程中操作mongoDB数据库

Springboot工程中操作mongoDB数据库

引入mongodb的jar包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

配置mongodb的数据库连接

spring:
  application:
    name: xc‐service‐manage‐cms
  data:
    mongodb:
      uri:  mongodb://root:123@localhost:27017
      database: xc_cms

springboot中为我们提供了一个操作mongodb的jar类MongoRepository<T, ID>,在Dao中只要继承了该类就可以操作mongodb数据库
T:代表与mongoDB数据库对应的pojo类

public interface CmsPageRepository extends MongoRepository<CmsPage,String> {
}

编写测试类来测试mongodb的dao类

增加
使用.save()方法

@SpringBootTest
@RunWith(SpringRunner.class)
public class CmsPageRepositoryTest {

    @Autowired
    private CmsPageRepository cmsPageRepository;

    //测试增加
    @Test
    public void savePage(){
        CmsPage cmsPage = new CmsPage();
        cmsPage.setPageName("测试页面");
        cmsPage.setDataUrl("00000");
        cmsPage.setPageAliase("testPage");
        cmsPage.setPageCreateTime(new Date());
        cmsPageRepository.save(cmsPage);
    }
}

删除
根据id进行删除
使用.deleteById(“id”);

//测试删除
@Test
 public void deletePage(){
     cmsPageRepository.deleteById("5c0a32e6411435ad6bdec9b2");
 }

修改
修改的思路就是先查询,然后添加

 //测试修改
@Test
public void updatePage(){
	/** 
	关于Optional: Optional是jdk1.8引入的类型,Optional是一个容器对象,它包括了我们需要的对象,使用isPresent方法判断所包
	含对象是否为空,isPresent方法返回false则表示Optional包含对象为空,否则可以使用get()取出对象进行操作。 Optional的优点是:
	1、提醒你非空判断。
	2、将对象非空检测标准化。
	*/
     Optional<CmsPage> optional = cmsPageRepository.findById("5c0a351b411435b714f5abb8");
     if(optional.isPresent()){
         CmsPage cmsPage = optional.get();
         cmsPage.setPageName("页面测试");
         cmsPageRepository.save(cmsPage);
     }
 }

查询
MongoDB提供了类似于springDataJPA的自定义查询方法规则
按照findByXXX,findByXXXAndYYY,CountByXXXAndYYY这样的查询规则进行查询

//按照id进行查询
T findById("xxxxxxxxx");
//按照id和名字进行查询,注意前面的字段要与后面的字符串进行对应
T findByIdAndName("xxxxxxxx","xxxxxxxx");
//按照id和名字统计数量
int countByIdAndName("xxxxxxx","xxxxxxxx");
//根据id和名称进行分页查询
Page<T> findByIdAndName("xxxxxxxx","xxxxxxxx",Pageable pageable);

栗子:

public interface CmsPageRepository extends MongoRepository<CmsPage,String> {
    //根据siteId和pageName进行分页查询
    Page<CmsPage> findBySiteIdAndPageName(String siteId, String pageName, Pageable pageable);
}
 //查询测试
     public void findById(){
        int page = 0;
        int size = 10;
        Pageable pageable = PageRequest.of(page,size);
        Page<CmsPage> cmsPages = cmsPageRepository.findBySiteIdAndPageName("5a751fab6abb5044e0d19ea1", "课程详情页面", pageable);
        int num = cmsPages.getSize();
        System.out.println(num);
     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值