zoukankan      html  css  js  c++  java
  • 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:developmentmongoDbin


    跟bin同级创建 logs和datadb文件夹
    同级创建
    mongodb.conf文件:

    文件内容:

    #数据库路径
    dbpath=D:developmentmongoDbdatadb

    #日志输出文件路径 
    logpath=D:developmentmongoDblogsmongoLog.log

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

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

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

    #端口号 默认为27017 
    port=27017

    启动mongodb的方式:

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

    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

    然后去数据库看一下

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

    推荐使用一个 工具:







  • 相关阅读:
    如何设定Fckeditor的工具栏
    WINDOWS 8
    博弈论
    互联网协议入门
    关于“性”
    两个看似互斥矛盾的法则,在更高的法则上会达到统一
    silverlight后台加载本地图片
    REST(Representational State Transfer表述性状态转移)
    各个搜索引擎网站管理员工具地址
    OAuth
  • 原文地址:https://www.cnblogs.com/naimao/p/11138269.html
Copyright © 2011-2022 走看看