您的位置:首页 > 数据库 > Mongodb

MongoDB 安装与SpringBoot项目整合详细教程

2019-03-24 23:41 806 查看

文章目录

  • 整合Spring Boot
  • MongoDB 安装

    • 安装环境 CenOS6.5
    • MongoDB 4.0.0
    MongoDB 下载

    步骤:
    1.创建MongoDB 文件夹 mkdir MongoDB
    2.进入MongoDB 文件夹 cd MongoDB
    3.使用wget命令下载MongoDB : wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz
    (没有wget命令,先使用yum install wget 安装)

    [master@slave1 ~]$ mkdir mongodb
    [master@slave1 ~]$ cd mongodb/
    [master@slave1 mongodb]$ wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz

    下载完成后,将下载的MongoDB解压,并将解压后的文件夹重命名为 mongodb,命令如下:

    [master@slave1 mongodb]$ tar -zxvf mongodb-linux-x86_64-4.0.0.tgz
    [master@slave1 mongodb]$ mv mongodb-linux-x86_64-4.0.0 mongodb
    MongoDB 配置
    • 进入mongodb目录下,创建两个文件夹db 和 logs,分别用来保存数据和日志,代码如下:
    [master@slave1 mongodb]$ cd mongodb
    [master@slave1 mongodb]$ mkdir db
    [master@slave1 mongodb]$ mkdir logs

    然后,进入bin目录下,创建一个新的MongoDB配置文件 mongo.conf,如下:

    • 进入bin目录
    [master@slave1 mongodb]$ cd bin/
    • 创建 mongo.conf 并配置
    [master@slave1 bin]$ vim mongo.conf

    内容如下:

    dbpath=/home/master/mongodb/mongodb/db
    logpath=/home/master/mongodb/mongodb/logs/mongodb.log
    port=27017
    fork=true

    第一行配置刚才创建的db文件夹路径
    第二行配置刚才创建的日志文件路径
    第三行启动端口
    第四行是否以后台形式运行MongoDB

    MongoDB 启动和关闭

    在bin目录下,运行如下命令启动MongoDB

    [master@slave1 bin]$ ./mongod -f mongo.conf --bind_ip_all


    进入MongoDB控制台

    [master@slave1 bin]$ ./mongo

    输入db.version(),显示MongoDB版本时则启动成功。

    > db.version()
    4.0.0

    默认情况下,启动后连接的是MongoDB的test数据库,而关闭MongoDB的命令需要在admin数据库中进行操作,因此在关闭MongoDB前需要切换到admin数据库,再执行,操作如下:

    > use admin;
    > db.shutdownServer();
    MongoDB 账户设置

    默认情况下,启动的MongoDB没有登录密码,为了安全考虑,这里创建一个用户并配置登录密码
    用户名为root,密码55555,role表示该用户具有的角色,配置了test数据库的读写权限

    > use admin
    switched to db admin
    > db.createUser({user:"root",pwd:"55555",roles:[{role:"readWrite",db:"test"}]})
    Successfully added user: {
    "user" : "root",
    "roles" : [
    {
    "role" : "readWrite",
    "db" : "test"
    }
    ]
    }
    >

    用户创建成功后,关闭 MongoDB再重新启动 进入控制台,然后切换到admin数据库验证登录,验证成功就可以对test库进行读写操作了,操作如下:

    > use admin
    switched to db admin
    > db.auth("root","55555");
    1
    >

    执行结果为1表示认证成功。

    整合Spring Boot

    1.创建Spring Boot Web 工程


    pom.xml添加MongoDB依赖

    <!--mongodb 依赖-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    2.配置 MongoDB

    在application.properties 中配置 MongoDB 的连接信息,如下:

    spring.data.mongodb.authentication-database=admin
    spring.data.mongodb.database=test
    spring.data.mongodb.host=192.168.18.101
    spring.data.mongodb.port=27017
    spring.data.mongodb.username=root
    spring.data.mongodb.password=55555

    第一行配置验证登录信息的库
    第二行表示要连接的库
    第3~6行是 MongoDB 的链接地址和登录认证信息

    3.创建实体类

    创建实体类Project ,代码如下

    package com.ffish.spring_boot_mongodb.pojo;
    
    /**
    * @Auther: shup
    * @Date: 2019/3/24 23:07
    * @Description: TODO
    */
    public class Project {
    private Integer pid;
    private String name;
    private String chargeName;
    
    public Integer getPid() {
    return pid;
    }
    
    public void setPid(Integer pid查人) {
    this.pid = pid;
    }
    
    public String getName() {
    return name;
    }
    
    public void setName(String name) {
    this.name = name;
    }
    
    public String getChargeName() {
    return chargeName;
    }
    
    public void setChargeName(String chargeName) {
    this.chargeName = chargeName;
    }
    
    @Override
    public String toString() {
    return "Project{" +
    "pid=" + pid +
    ", name='" + name + '\'' +
    ", chargeName='" + chargeName + '\'' +
    '}';
    }
    }
    4.创建 ProjectDao
    package com.ffish.spring_boot_mongodb.dao;
    
    import com.ffish.spring_boot_mongodb.pojo.Project;
    import org.springframework.data.mongodb.repository.MongoRepository;
    
    import java.util.List;
    
    /**
    * @Auther: shup
    * @Date: 2019/3/24 23:10
    * @Description: TODO
    */
    public interface ProjectDao extends MongoRepository<Project,Integer> {
    List<Project> findByChargeNameContains(String chargeName);
    Project findByNameEquals(String name);
    }
    5.创建 Controller
    package com.ffish.spring_boot_mongodb.controller;
    
    import com.ffish.spring_boot_mongodb.dao.ProjectDao;
    import com.ffish.spring_boot_mongodb.pojo.Project;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
    * @Auther: shup
    * @Date: 2019/3/24 23:13
    * @Description: TODO
    */
    @RestController
    public class ProjectController {
    @Autowired
    ProjectDao projectDao;
    
    @GetMapping("/test1")
    public void test1(){
    List<Project> projects = new ArrayList<Project>();
    Project p1 = new Project();
    p1.setPid(1);
    p1.setName("宿舍楼建设");
    p1.setChargeName("小张");
    projects.add(p1);
    
    Project p2 = new Project();
    p2.setPid(2);
    p2.setName("球场改造");
    p2.setChargeName("小李");
    projects.add(p2);
    
    projectDao.insert(projects);
    List<Project> projects1 = projectDao.findByChargeNameContains("小张");
    System.out.println(projects1);
    Project project = projectDao.findByNameEquals("球场改造");
    System.out.println(project);
    }
    }
    6.启动项目测试

    浏览器访问 http://localhost:8080/test1

    在MongoDB控制台进行测试

    > use admin
    switched to db admin
    > db.auth("root","55555")
    1
    > use test
    switched to db test
    > db.project.find()
    { "_id" : ObjectId("5c97a1f5a852095374a14bcc"), "pid" : 1, "name" : "宿舍楼建设", "chargeName" : "小张", "_class" : "com.ffish.spring_boot_mongodb.pojo.Project" }
    { "_id" : ObjectId("5c97a1f5a852095374a14bcd"), "pid" : 2, "name" : "球场改造", "chargeName" : "小李", "_class" : "com.ffish.spring_boot_mongodb.pojo.Project" }
    >

    数据已经成功存入test数据库了。

    7.使用 MongoTemplate

    除了继承MongoRepository 外,Spring Data MongoDB 还提供了MongoTemplate 用来方便地操作 MongoDB
    添加下面的代码到上面的Controller:

    @Autowired
    MongoTemplate mongoTemplate;
    @GetMapping("/test2")
    public void test2(){
    List<Project> projects = new ArrayList<Project>();
    Project p1 = new Project();
    p1.setPid(3);
    p1.setName("5号教学楼");
    p1.setChargeName("河和");
    projects.add(p1);
    Project p2 = new Project();
    p2.setPid(4);
    p2.setName("3食堂");
    p2.setChargeName("小丫");
    projects.add(p2);
    mongoTemplate.insertAll(projects);
    List<Project> projects1 = mongoTemplate.findAll(Project.class);
    System.out.println(projects1);
    Project project = mongoTemplate.findById(3,Project.class);
    System.out.println(project);
    }
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: 
    相关文章推荐