博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot---MongoDB的简单使用
阅读量:3921 次
发布时间:2019-05-23

本文共 6023 字,大约阅读时间需要 20 分钟。

一、引入依赖

org.springframework.boot
spring-boot-starter-data-mongodb

二、配置文件

spring:  application:    name: xc‐service‐manage‐cms(本项目名)  data:    mongodb:      uri: mongodb://root:123@localhost:27017(账号root, 密码123,端口27017)      database: xc_cms(连接的数据库名称)

三、实体类

package com.xuecheng.framework.domain.cms;import lombok.Data;import lombok.ToString;import org.springframework.data.annotation.Id;import org.springframework.data.mongodb.core.mapping.Document;import java.util.Date;import java.util.List;/** * @Author: mrt. * @Description: * @Date:Created in 2018/1/24 10:04. * @Modified By: *///指定的集合名称@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
pageParams; //模版文件Id// private String templateFileId; //静态文件Id private String htmlFileId; //数据Url private String dataUrl; public String getSiteId() { return siteId; } public void setSiteId(String siteId) { this.siteId = siteId; } public String getPageId() { return pageId; } public void setPageId(String pageId) { this.pageId = pageId; } public String getPageName() { return pageName; } public void setPageName(String pageName) { this.pageName = pageName; } public String getPageAliase() { return pageAliase; } public void setPageAliase(String pageAliase) { this.pageAliase = pageAliase; } public String getPageWebPath() { return pageWebPath; } public void setPageWebPath(String pageWebPath) { this.pageWebPath = pageWebPath; } public String getPageParameter() { return pageParameter; } public void setPageParameter(String pageParameter) { this.pageParameter = pageParameter; } public String getPagePhysicalPath() { return pagePhysicalPath; } public void setPagePhysicalPath(String pagePhysicalPath) { this.pagePhysicalPath = pagePhysicalPath; } public String getPageType() { return pageType; } public void setPageType(String pageType) { this.pageType = pageType; } public String getPageTemplate() { return pageTemplate; } public void setPageTemplate(String pageTemplate) { this.pageTemplate = pageTemplate; } public String getPageHtml() { return pageHtml; } public void setPageHtml(String pageHtml) { this.pageHtml = pageHtml; } public String getPageStatus() { return pageStatus; } public void setPageStatus(String pageStatus) { this.pageStatus = pageStatus; } public Date getPageCreateTime() { return pageCreateTime; } public void setPageCreateTime(Date pageCreateTime) { this.pageCreateTime = pageCreateTime; } public String getTemplateId() { return templateId; } public void setTemplateId(String templateId) { this.templateId = templateId; } public List
getPageParams() { return pageParams; } public void setPageParams(List
pageParams) { this.pageParams = pageParams; } public String getHtmlFileId() { return htmlFileId; } public void setHtmlFileId(String htmlFileId) { this.htmlFileId = htmlFileId; } public String getDataUrl() { return dataUrl; } public void setDataUrl(String dataUrl) { this.dataUrl = dataUrl; }}

三、MongoRepository(和JPA一样,因为MongoDB和关系型数据库差别不大,也可以用@Query自定义查询语句)

package com.xuecheng.manage_cms.dao;import com.xuecheng.framework.domain.cms.CmsPage;import org.springframework.data.mongodb.repository.MongoRepository;import org.springframework.stereotype.Repository;/** * @author Huang * @version 1.0 * @date 2020/3/18 20:38 */@Repositorypublic interface CmsPageRepository extends MongoRepository
{ @Query(value = "{'pageId':?0, 'pageName':?1}") public CmsPage findByPageIdAndPageName(String pageId, String pageName); ** * 查找除id以外的其他所有(参考) */ @Query("{'id':{'$ne':?0}}") List
findAllExceptId(String id);}

四、单元测试

/**     * 分页查询     */    @Test    public void test01(){        Sort.Order order = new Sort.Order(Sort.Direction.DESC, "id");        Pageable pageable = PageRequest.of(1, 2, Sort.by(order));        Page
all = cmsPageRepository.findAll(pageable); System.out.println("????" + all.getContent()); } //添加 @Test public void testInsert(){ //定义实体类 CmsPage cmsPage = new CmsPage(); cmsPage.setSiteId("s01"); cmsPage.setTemplateId("t01"); cmsPage.setPageName("测试页面"); cmsPage.setPageCreateTime(new Date()); List
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
optional = cmsPageRepository.findOne("5b17a34211fe5e2ee8c116c9"); if(optional.isPresent()){ CmsPage cmsPage = optional.get(); cmsPage.setPageName("测试页面01"); cmsPageRepository.save(cmsPage); } }

关于Optional:

Optional是jdk1.8引入的类型,Optional是一个容器对象,它包括了我们需要的对象,使用isPresent方法判断所包
含对象是否为空,isPresent方法返回false则表示Optional包含对象为空,否则可以使用get()取出对象进行操作。
Optional的优点是:
1、提醒你非空判断。
2、将对象非空检测标准化。

转载地址:http://vfern.baihongyu.com/

你可能感兴趣的文章
Leetcode 303. 区域和检索 - 数组不可变
查看>>
Leetcode 110. 平衡二叉树
查看>>
Leetcode 111. 二叉树的最小深度
查看>>
Leetcode 226. 翻转二叉树
查看>>
Leetcode 617. 合并二叉树
查看>>
Leetcode 654. 最大二叉树
查看>>
Leetcode 304. 二维区域和检索 - 矩阵不可变
查看>>
Leetcode 45. 跳跃游戏 II
查看>>
模式2. 工厂方法模式-Java
查看>>
模式1. 简单工厂模式-Java
查看>>
模式6.原型模式-Java
查看>>
Leetcode 146. LRU 缓存机制
查看>>
Leetcode 208. 实现 Trie (前缀树)
查看>>
Leetcode 1114. 按序打印
查看>>
kill -15、kill -9 与 kill
查看>>
剑指offer03 . 数组中重复的数字
查看>>
剑指 Offer 04. 二维数组中的查找
查看>>
剑指 Offer 05. 替换空格
查看>>
剑指 Offer 06. 从尾到头打印链表
查看>>
模式8.外观模式-Java
查看>>