zoukankan      html  css  js  c++  java
  • 项目总结52: Linux安装mongodb和Springboot集成mongodb

    项目总结52: Linux安装mongodb和Springboot集成mongodb

    Mongodb简介

      官网介绍:

    MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era. No database makes you more productive. 

    MongoDB是一个通用的、基于文档的分布式数据库,它为现代应用程序开发人员和云时代而构建的。无数据库能让你更有效率。

       特点:

    MongoDB是一个面向文档的数据库,它并不是关系型数据库,直接存取BSON,这意味着MongoDB更加灵活,因为可以在文档中直接插入数组之类的复杂数据类型,并且文档的key和value不是固定的数据类型和大小,所以开发者在使用MongoDB时无须预定义关系型数据库中的”表”等数据库对象,设计数据库将变得非常方便,可以大大地提升开发进度。MongoDB不支持事务操作,所以需要用到事务的应用建议不用MongoDB,另外MongoDB目前不支持join操作,需要复杂查询的应用也不建议使用MongoDB

    Linux安装mongodb

    参考博客:https://blog.csdn.net/E_Eric12138/article/details/89606950

    •  第一步:去官网下载mongodb安装包,我选择的是规格如下,可以直接下载并传到Linux服务器,也可以使用指令直接在Linux上在线下载;

    下载指令
    wget --no-check-certificate https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.2.tgz

    • 第二步: 解压安装包
    #解压RGZ文件值当前文件夹
    tar -zxvf mongodb-linux-x86_64-rhel70-4.2.2.tgz 
    #将解压后的文件移动到/usr/local/mongodb目录下
    mv mongodb-linux-x86_64-rhel70-4.2.2 /usr/local/mongodb

    •  第三步:创建配置文件

    先准备配置需要的文件

    #进入/usr/local/mongodb/目录下
    cd /usr/local/mongodb/;
    #创建data目录
    mkdir data;
    #创建logs目录,并在logs目录下新建mongodb.log文件
    mkdir logs;
    cd logs; 
    touch mongodb.log; 
    #回到上级目录,创建etc目录,并在logs目录下新建mongodb.conf文件
    cd ../;
    mkdir etc;
    cd etc; 
    touch mongodb.conf

     再在mongodb.conf中加入如下配置

    #数据库路径
    dbpath=/usr/local/mongodb/data
    #日志输出文件路径
    logpath=/usr/local/mongodb/logs/mongodb.log
    #错误日志采用追加模式
    logappend=true
    #启用日志文件,默认启用
    journal=true
    #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
    quiet=true
    #端口号 默认为27017
    port=27017
    #允许远程访问
    bind_ip=0.0.0.0
    #开启子进程
    fork=true
    #开启认证,必选先添加用户
    #auth=true
    • 第四步:启动mongodb

    启动mongodb服务

    #启动日志
    ./mongod --config /usr/local/mongodb/etc/mongodb.conf

     打开mongodb客户端,添加root超级用户

    #打开mongodb客户端
    [root@VM_0_4_centos bin]# ./mongo
    #使用默认admin数据库
    > use admin
    #对admin数据库创建root账号,密码也是root
    > db.createUser({user:"root",pwd:"root",roles:[{role:"root",db:"admin"}]})

     关闭mongodb服务,并重新启动,否则root账号无法生效

    #mongodb客户端状态下,关闭服务
    > db.shutdownServer()
    #重新启动
    [root@VM_0_4_centos bin]# ./mongod --config /usr/local/mongodb/etc/mongodb.conf 

    Springboot集成mongodb

    • 第一步:POM文件中引入jar包
           <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-mongodb</artifactId>
            </dependency>
    • 第二步:设计保存到mongodb的数据格式实体类 
    package com.hs.web.entity.mongodb;
    
    import com.hs.api.commom.bizservice.thirdparty.express100.LastResultBean;
    import io.swagger.annotations.ApiModel;
    import org.springframework.data.annotation.Id;
    import org.springframework.data.mongodb.core.index.Indexed;
    import org.springframework.data.mongodb.core.mapping.Document;
    
    
    import java.sql.Timestamp;
    import java.util.Date;
    
    /* *
     *@Description:
     *@Author:TYJ
     *@Date: create in  2020/1/13 15:04
     */
    @Document //标明由mongo来维护该表
    @ApiModel("mongodb 快递100返回数据")
    public class Express100NotifyVO {
    
        @Id //自增主键
        private String id;
    
        @Indexed //索引
        private Long orderId;
    
        private String orderCode;
        private String logisticsNum;
        private String jsonData;
        private Date dataTime;
    
        ......省略getter和setter
    }
    • 第三步:设计service层,实现数据的保存和获取
    import com.hs.web.entity.mongodb.Express100NotifyVO;
    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.stereotype.Component;
    
    import java.util.List;
    
    @Component
    public class MongodbBizService {
    
       @Autowired
       private MongoTemplate mongoTemplate;//MongoTemplate类,和RedisTemplate类似,对mongodb数据库的XRUD操作进行封装
    
        //1-将快递100的数据保存到mongodb
        public void saveExpress100Data(Express100NotifyVO data){
    
            mongoTemplate.save(data);//保存数据
        }
    
        //2-读取快递100数据
        public List<Express100NotifyVO> listExpress100Data(Long orderId){
            Query query = new Query();//实例化一个查询条件
            query.addCriteria(Criteria.where("orderId").is(orderId));//封装查询条件-根据orderId查询数据
            List<Express100NotifyVO> dataList = mongoTemplate.find(query, Express100NotifyVO.class);//mongoTemplate.find查询mongodb数据据
            return dataList;
        }
    }
    • 第四步:在application.properties文件中进行配置
    #mongodb://username:password@ip:port/database
    spring.data.mongodb.uri=mongodb://xg:xg1234@120.26.XX.XX:27017/xg
    • 第五步:写controller,正常调用service层方法;

    本人遇到的坑:

    1-本地测试完功能后,将mongodb用到的jar上传到Linux,没有把bson-3.4.3.jar上传到服务器,导致启动的时候一直无法加载decoder方法

  • 相关阅读:
    Linux部署之NFS方式安装系统
    VMware Workstation Pro学习探索(Linux,Docker)
    sqlserver最大内存设置太小导致无法启动sql服务
    Docker下安装Sqlserver(mssql)
    docker错误:net/http: TLS handshake timeout;解决方案
    Linux和Docker常用命令
    Linux及Docker学习记录
    .net core视图预编译
    oracle的一些简单语法
    Oracle安装连接常见错误
  • 原文地址:https://www.cnblogs.com/wobuchifanqie/p/12189293.html
Copyright © 2011-2022 走看看