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);
    }

 

 

效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM