本文演示以window10系统。

一:环境搭建:

1:mongodb下载和安装:

http://www.mongodb.org/官网下载压缩包或者exe傻瓜式安装都行。

2:mongodb配置和搭建服务自动开机启动

  个人目录先亮剑

是否搭建成功?访问这个就行了

访问http://127.0.0.1:27017/,如果出现下面的英文说明启动成功了:
It looks like you are trying to access MongoDB over HTTP on the native driver port.

以管理员进入cmd:

进入到指定的bin文件目录下。

D:
D:\development\mongoDb\bin

跟bin同级创建 logs和data\db文件夹
同级创建
mongodb.conf文件:

文件内容:

#数据库路径
dbpath=D:\development\mongoDb\data\db

#日志输出文件路径 
logpath=D:\development\mongoDb\logs\mongoLog.log

#错误日志采用追加模式
logappend=true

#启用日志文件,默认启用
journal=true

#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false 
quiet=true

#端口号 默认为27017 
port=27017

启动mongodb的方式:

第一种:
进入到bin目录运行cmd
mongod --dbpath D:\development\mongoDb\data\db
第二种:
mongod --config D:\development\mongoDb\mongodb.conf
第三种:
创建Windows服务
mongod --config D:\development\mongoDb\mongodb.conf --install --serviceName "MongoDB"
然后在运行启动命令
net start MongoDB
- 如果需要卸载MongoDB服务,首先进入D:\MongoDB\bin目录下,执行如下命令:

mongod.exe --remove --serviceName "MongoDB"

3:springboot整合mongdb

使用idea:

选择这俩个即可

搭建成功

二 使用mongodb进行增删改查,入门demo

项目目录结构:

MongoTestC类:
 package com.fage.sbmongodb.controllers;

 import com.fage.sbmongodb.dao.MongoTestDao;
import com.fage.sbmongodb.model.MongoTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class MongoTestC { @Autowired
private MongoTestDao mtdao; @GetMapping(value="/test1")
public void saveTest() throws Exception {
MongoTest mgtest=new MongoTest();
mgtest.setId(11);
mgtest.setAge(33);
mgtest.setName("ceshi");
mtdao.saveTest(mgtest);
} @GetMapping(value="/test2")
public MongoTest findTestByName(){
MongoTest mgtest= mtdao.findTestByName("ceshi");
System.out.println("mgtest is "+mgtest);
return mgtest;
} @GetMapping(value="/test3")
public void updateTest(){
MongoTest mgtest=new MongoTest();
mgtest.setId(11);
mgtest.setAge(44);
mgtest.setName("ceshi2");
mtdao.updateTest(mgtest);
} @GetMapping(value="/test4")
public void deleteTestById(){
mtdao.deleteTestById(11);
}
}
MongoTestDao类:
package com.fage.sbmongodb.dao;

import com.fage.sbmongodb.model.MongoTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component; @Component
public class MongoTestDao { @Autowired
private MongoTemplate mongoTemplate; /**
* 创建对象
*/
public void saveTest(MongoTest test) {
mongoTemplate.save(test);
} /**
* 根据用户名查询对象
* @return
*/
public MongoTest findTestByName(String name) {
Query query=new Query(Criteria.where("name").is(name));
MongoTest mgt = mongoTemplate.findOne(query , MongoTest.class);
return mgt;
} /**
* 更新对象
*/
public void updateTest(MongoTest test) {
Query query=new Query(Criteria.where("id").is(test.getId()));
Update update= new Update().set("age", test.getAge()).set("name", test.getName());
//更新查询返回结果集的第一条
mongoTemplate.updateFirst(query,update,MongoTest.class);
//更新查询返回结果集的所有
// mongoTemplate.updateMulti(query,update,TestEntity.class);
} /**
* 删除对象
* @param id
*/
public void deleteTestById(Integer id) {
Query query=new Query(Criteria.where("id").is(id));
mongoTemplate.remove(query,MongoTest.class);
}
}
MongoTest类:
package com.fage.sbmongodb.model;

public class MongoTest {
private Integer id;
private Integer age;
private String name; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}

application.yml,

不用担心你的mongodb是否有test数据库,没有会自动帮你创建的。如果有密码什么的自行百度设置即可,很简单的

spring:
data:
mongodb:
uri: mongodb://localhost:27017/test

此处我用的是本地安装的mongodb,所以没有用户名和密码,有用户名和密码的格式是

spring.data.mongodb.uri=mongodb://name:pass@localhost:27017/test,其中name是用户名,pass是密码

如果要配置多个数据库,则中间用","分割,例如

spring.data.mongodb.uri=mongodb://192.168.1.1:20000,192.168.1.2:20000,192.168.252.12:20000/test

下面我们启动程序进行测试

1)新增

我们先在浏览器输入http://localhost:1234/test1

调用了controller中的新增方法,此时数据库应该有值,我们执行相关命令看一下

我们发现,我们使用use test命令创建新库的时候,当库里还没有表的时候,我们使用show dbs是看不到这个库的,

当我们在浏览器敲了回车之后,我们发现可以看到test库了,同时test库中也有了mongoTest表,使用db.mongoTest.find()命令就可以看到数据了,符合要求

2)查询

我们在浏览器输入http://localhost:1234/test2

即可查看到刚才插入的那条数据

3)修改

我们在浏览器输入http://localhost:1234/test3

然后去数据库看一下

果然发生了变化

4)删除

我们在浏览器输入http://localhost:1234/test4

然后去数据库看一下

我们发现,数据没有了,因为已经被删掉了,但是表还是存在的,库也可以看到

推荐使用一个 工具:

												

mongodb学习这篇你就成功入门了,springboot2.0整合mongodb的更多相关文章

  1. 第二篇:SpringBoot2.0整合ActiveMQ

    本篇开始将具体介绍SpringBoot如何整合其它项目. 如何创建SpringBoot项目 访问https://start.spring.io/. 依次选择构建工具Maven Project.语言ja ...

  2. MongoDB 学习笔记(一)—— 安装入门

    注:我的环境是win7 32位. 下载安装 http://www.mongodb.org/downloads 解压即可.这里我重命名“mongodb”,存放的目录为E:\mongodb. 新建数据文件 ...

  3. MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据

    看到下图,是通过Jqgrid实现表格数据的基本增删查改的操作.表格数据增删改是一般企业应用系统开发的常见功能,不过不同的是这个表格数据来源是非关系型的数据库MongoDB.nosql虽然概念新颖,但是 ...

  4. Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0

    以前在工作当中做过不少与工作流Activiti有关的工作,当时都是spring集成activiti5.22的项目,现在回过头去看,其实版本已经稍微老了,因此,基于先前的工作经验,决定用较新版本的技术来 ...

  5. springboot学习入门简易版九---springboot2.0整合多数据源mybatis mysql8+(22)

    一个项目中配置多个数据源(链接不同库jdbc),无限大,具体多少根据内存大小 项目中多数据源如何划分:分包名(业务)或注解方式.分包名方式类似多个不同的jar,同业务需求放一个包中. 分包方式配置多数 ...

  6. springboot学习入门简易版六---springboot2.0整合全局捕获异常及log4j日志(12-13)

    使用Aop实现 1创建异常请求 在原有项目基础上,jspController中创建一个可能发生异常的请求: /** * 全局捕获异常测试 * @param i * @return */ @Reques ...

  7. springboot学习入门简易版五---springboot2.0整合jsp(11)

    springboot对jsp支持不友好,内部tomcat对jsp不支持,需要使用外部tomcat,且必须打包为war包. 1 创建maven项目 注意:必须为war类型,否则找不到页面. 且不要把js ...

  8. springboot2.0整合freemarker快速入门

    目录 1. 快速入门 1.1 创建工程pom.xml文件如下 1.2 编辑application.yml 1.3 创建模型类 1.4 创建模板 1.5 创建controller 1.6 测试 2. F ...

  9. (转)MongoDB学习

    (二期)25.分布式文件存储数据库MongoDB [课程25]mongod...命令.xmind96.9KB [课程25]MongoD...概念.xmind0.5MB [课程25]MongoDB简介. ...

随机推荐

  1. java 基本语法(四) 流程控制(一) 分支结构

    if(条件表达式){ 执行表达式} 结构二:二选一if(条件表达式){ 执行表达式1}else{ 执行表达式2} 结构三:n选一if(条件表达式){ 执行表达式1}else if(条件表达式){ 执行 ...

  2. Python之爬虫(二十五) Scrapy的中间件Downloader Middleware实现User-Agent随机切换

    总架构理解Middleware 通过scrapy官网最新的架构图来理解: 这个图较之前的图顺序更加清晰,从图中我们可以看出,在spiders和ENGINE提及ENGINE和DOWNLOADER之间都可 ...

  3. 08-Python面对对象进阶

    一.面向对象编程三大特征 Python是面向对象的语言,同样支持面向对象的编程的三大特征:继承,封装,多态. 封装是指隐藏对象的属性和实现细节,只对外提供必要的一些方法,私有属性,私有方法是实现封装地 ...

  4. bzoj1640[Usaco2007 Nov]Best Cow Line 队列变换*&&bzoj1692[Usaco2007 Dec]队列变换*

    bzoj1640[Usaco2007 Nov]Best Cow Line 队列变换 bzoj1692[Usaco2007 Dec]队列变换 题意: 有一个奶牛队列.每次可以在原来队列的首端或是尾端牵出 ...

  5. 聊聊Mysql主从同步读写分离配置实现

    Hi,各位热爱技术的小伙伴您们好,好久没有写点东西了,今天写点关于mysql主从同步配置的操作日志同大家一起分享.最近自己在全新搭建一个mysql主从同步读写分离数据库简单集群,我讲实际操作步骤整理分 ...

  6. 集训作业 洛谷P1469 找筷子

    这个题的代码真的是短的不得了呢. 有个神奇的东西叫异或,写起来是这个样子的^. 这个东西可以查看2个数的二进制某位是否相同,相同取0,不同取1.虽然我用的不熟,但我可以想出来,如果2个相同的数异或,答 ...

  7. 肝了两天IntelliJ IDEA 2020,解锁11种新姿势, 真香!!!

    IDEA2020版本正式发布已经有3个月了,当时由于各方面原因(太懒)也没有去尝试新功能.于是这个周末特意去在另一个电脑上下载了最新版的IDEA,并尝试了一下.总的来说呢,体验上明显的提升. 作为一个 ...

  8. Windows下安装Python 3.X 版本

    一. Python下载 Python官方下载地址 演示下载的版本为Python 3.8.3 ,你可以根据自己的选择安装其他版本的Python 二. Python 安装 下载完安装包双击安装时出错(Wi ...

  9. 使用SQL语句建表,插入数据

    --选中数据库,点击新建查询,然后执行即可--这是SQL中的注释信息,使用两个减号来注释. drop table Book --删除表Book create table Book --创建表Book ...

  10. ElasticSearch(四)查询、分词器

    正向索引 正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档. 这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于 ...