mongodb学习这篇你就成功入门了,springboot2.0整合mongodb

本文演示以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类:
 1 package com.fage.sbmongodb.controllers;
 2  
 3 import com.fage.sbmongodb.dao.MongoTestDao;
 4 import com.fage.sbmongodb.model.MongoTest;
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.web.bind.annotation.GetMapping;
 7 import org.springframework.web.bind.annotation.RestController;
 8  
 9 @RestController
10 public class MongoTestC {
11  
12     @Autowired
13     private MongoTestDao mtdao;
14  
15     @GetMapping(value="/test1")
16     public void saveTest() throws Exception {
17         MongoTest mgtest=new MongoTest();
18         mgtest.setId(11);
19         mgtest.setAge(33);
20         mgtest.setName("ceshi");
21         mtdao.saveTest(mgtest);
22     }
23  
24     @GetMapping(value="/test2")
25     public MongoTest findTestByName(){
26         MongoTest mgtest= mtdao.findTestByName("ceshi");
27         System.out.println("mgtest is "+mgtest);
28         return mgtest;
29     }
30  
31     @GetMapping(value="/test3")
32     public void updateTest(){
33         MongoTest mgtest=new MongoTest();
34         mgtest.setId(11);
35         mgtest.setAge(44);
36         mgtest.setName("ceshi2");
37         mtdao.updateTest(mgtest);
38     }
39  
40     @GetMapping(value="/test4")
41     public void deleteTestById(){
42         mtdao.deleteTestById(11);
43     }
44 }
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

然后去数据库看一下

 

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

推荐使用一个 工具:

 







posted @ 2019-07-05 14:48  发哥讲Java  阅读(2412)  评论(0编辑  收藏  举报