spring boot 连接mongoDB

一、引入依赖,配置连接信息

依赖:

       <!--mongodb依赖-->
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-data-mongodb</artifactId>
           <version>2.0.1.RELEASE</version>
       </dependency>

配置信息:

application.yml

spring:
  data:
    mongodb:
      uri:  mongodb://localhost:27017#mongodb的url
      database: xc_cms

 

二、创建类和接口

创建模型

映射mongoDB数据库中,对应的集合

 

复制代码
package com.itcast.model;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;
import java.util.List;

/**
 * 说明:
 *
 * @author LanPengBiao
 * @version 1.0
 * @Date: Created in 2021-10-21 11:18
 */
//cms_page对应mongodb中的集合名称
@Document(collection = "cms_page")
public class CmsPage {
    /**
     * 页面名称、别名、访问地址、类型(静态/动态)、页面模版、状态
     */
    //站点ID
    private String siteId;
    //页面ID
    @Id
    private String pageId;
    //页面名称
    private String pageName;
    //别名
    private String pageAliase;
    //访问地址
    private String pageWebPath;
    //参数
    private String pageParameter;
    //物理路径
    private String pagePhysicalPath;
    //类型(静态/动态)
    private String pageType;
    //页面模版
    private String pageTemplate;
    //页面静态化内容
    private String pageHtml;
    //状态
    private String pageStatus;
    //创建时间
    private Date pageCreateTime;
    //模版id
    private String templateId;
    //参数列表
    private List<CmsPageParam> pageParams;
    //模版文件Id
//    private String templateFileId;
    //静态文件Id
    private String htmlFileId;
    //数据Url
    private String dataUrl;

    public String getSiteId() {
        return siteId;
    }

    public String getPageId() {
        return pageId;
    }

    public String getPageName() {
        return pageName;
    }

    public String getPageAliase() {
        return pageAliase;
    }

    public String getPageWebPath() {
        return pageWebPath;
    }

    public String getPageParameter() {
        return pageParameter;
    }

    public String getPagePhysicalPath() {
        return pagePhysicalPath;
    }

    public String getPageType() {
        return pageType;
    }

    public String getPageTemplate() {
        return pageTemplate;
    }

    public String getPageHtml() {
        return pageHtml;
    }

    public String getPageStatus() {
        return pageStatus;
    }

    public Date getPageCreateTime() {
        return pageCreateTime;
    }

    public String getTemplateId() {
        return templateId;
    }

    public List<CmsPageParam> getPageParams() {
        return pageParams;
    }

    public String getHtmlFileId() {
        return htmlFileId;
    }

    public String getDataUrl() {
        return dataUrl;
    }

    public void setSiteId(String siteId) {
        this.siteId = siteId;
    }

    public void setPageId(String pageId) {
        this.pageId = pageId;
    }

    public void setPageName(String pageName) {
        this.pageName = pageName;
    }

    public void setPageAliase(String pageAliase) {
        this.pageAliase = pageAliase;
    }

    public void setPageWebPath(String pageWebPath) {
        this.pageWebPath = pageWebPath;
    }

    public void setPageParameter(String pageParameter) {
        this.pageParameter = pageParameter;
    }

    public void setPagePhysicalPath(String pagePhysicalPath) {
        this.pagePhysicalPath = pagePhysicalPath;
    }

    public void setPageType(String pageType) {
        this.pageType = pageType;
    }

    public void setPageTemplate(String pageTemplate) {
        this.pageTemplate = pageTemplate;
    }

    public void setPageHtml(String pageHtml) {
        this.pageHtml = pageHtml;
    }

    public void setPageStatus(String pageStatus) {
        this.pageStatus = pageStatus;
    }

    public void setPageCreateTime(Date pageCreateTime) {
        this.pageCreateTime = pageCreateTime;
    }

    public void setTemplateId(String templateId) {
        this.templateId = templateId;
    }

    public void setPageParams(List<CmsPageParam> pageParams) {
        this.pageParams = pageParams;
    }

    public void setHtmlFileId(String htmlFileId) {
        this.htmlFileId = htmlFileId;
    }

    public void setDataUrl(String dataUrl) {
        this.dataUrl = dataUrl;
    }

    @Override
    public String toString() {
        return "CmsPage{" +
                "siteId='" + siteId + '\'' +
                ", pageId='" + pageId + '\'' +
                ", pageName='" + pageName + '\'' +
                ", pageAliase='" + pageAliase + '\'' +
                ", pageWebPath='" + pageWebPath + '\'' +
                ", pageParameter='" + pageParameter + '\'' +
                ", pagePhysicalPath='" + pagePhysicalPath + '\'' +
                ", pageType='" + pageType + '\'' +
                ", pageTemplate='" + pageTemplate + '\'' +
                ", pageHtml='" + pageHtml + '\'' +
                ", pageStatus='" + pageStatus + '\'' +
                ", pageCreateTime=" + pageCreateTime +
                ", templateId='" + templateId + '\'' +
                ", pageParams=" + pageParams +
                ", htmlFileId='" + htmlFileId + '\'' +
                ", dataUrl='" + dataUrl + '\'' +
                '}';
    }
}
复制代码

 

复制代码
package com.itcast.model;

/**
 * 说明:
 *
 * @author LanPengBiao
 * @version 1.0
 * @Date: Created in 2021-10-21 11:19
 */
public class CmsPageParam {


    //参数名称
    private String pageParamName;
    //参数值
    private String pageParamValue;

    public String getPageParamName() {
        return pageParamName;
    }

    public String getPageParamValue() {
        return pageParamValue;
    }

    public void setPageParamName(String pageParamName) {
        this.pageParamName = pageParamName;
    }

    public void setPageParamValue(String pageParamValue) {
        this.pageParamValue = pageParamValue;
    }

    @Override
    public String toString() {
        return "CmsPageParam{" +
                "pageParamName='" + pageParamName + '\'' +
                ", pageParamValue='" + pageParamValue + '\'' +
                '}';
    }
}
复制代码

 

创建接口:

接口继承

MongoRepository<CmsPage,String>类,可以使用内置方法和自定义方法,方法名称符合命名规范可以直接执行
复制代码
package com.itcast.dao;

import com.itcast.model.CmsPage;
import org.springframework.data.mongodb.repository.MongoRepository;


public interface CmsPageRepository extends MongoRepository<CmsPage,String> {

}
复制代码

 

 

 

三、测试

导入测试依赖

       <!--test测试依赖-->
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-test</artifactId>
           <version>2.0.1.RELEASE</version>
       </dependency>

 

测试类

复制代码
package com.itcast.dao;

import com.itcast.model.CmsPage;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;
import java.util.Map;

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

    @Autowired
    CmsPageRepository cmsPageRepository;
    @Test
    public void testFindAll(){
        List<CmsPage> all = cmsPageRepository.findAll();
        System.out.println(all);
        System.out.println("======================================================================================");

    }

}
复制代码

 

测试效果

 

 

 

四、常用方法CURD

查询

复制代码
    //分页查询
    @Test
    public void testFindPage(){
        //分页参数
        int page = 1;//从0开始
        int size = 10;
        Pageable pageable = PageRequest.of(page,size);
        Page<CmsPage> all = cmsPageRepository.findAll(pageable);
        System.out.println(all);
    }
复制代码

 

增加

删除

修改

先查询出结果,然后再修改,再保存。

复制代码
    //修改
    @Test
    public void testUpdate() {
        //查询对象
        Optional<CmsPage> optional = cmsPageRepository.findById("5b4b1d8bf73c6623b03f8cec");
        if(optional.isPresent()){
            CmsPage cmsPage = optional.get();
            //设置要修改值
            cmsPage.setPageAliase("test01");
            //...
            //修改
            CmsPage save = cmsPageRepository.save(cmsPage);
            System.out.println(save);
        }

    }
复制代码

 

 

 

 

五、自定义方法

自定义方法需要符合一定规范

 

定义方法

复制代码
package com.itcast.dao;

import com.itcast.model.CmsPage;
import org.springframework.data.mongodb.repository.MongoRepository;


public interface CmsPageRepository extends MongoRepository<CmsPage,String> {
    //根据页面名称查询
    CmsPage findByPageName(String pageName);
}
复制代码

 

 

测试

    //根据页面名称查询
    @Test
    public void testfindByPageName(){
        CmsPage cmsPage = cmsPageRepository.findByPageName("index.html");
        System.out.println(cmsPage);
    }

 

 

效果:

 

posted @   hehehenhen  阅读(1357)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示