• Spring Boot MongoDB 简单入门


    概述

    MongoDB 是一个基于分布式文件存储的数据库,由C++语言编写。旨在为Web 应用提供可拓展的高性能数据存储解决方案。

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

    MongoDB 无 Schema 限制,灵活度很高。 数据格式是BSON,BSON是一种类似JSON 的二进制形式的存储格式,简称 Binary Json 。它和JSON 一样,支持内嵌的文档对象和数组对象。

    MongoDB 支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,还支持地数据建立索引。

    跟关系型数据库对比:

    Mysql MongoDB
    库 Database 库 DataBase
    表 Table 集合 Collection
    行 row 文档 document
    列 cloumn 字段 field
    joins 嵌入文档或者链接

    下载安装

    官网下载地址

    https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-5.0.3-signed.msi

    安装

    一路下一步即可。

    查看MongoDB版本号

    db.version()
    5.0.3 
    

    显示所有数据库的列表

    只会显示有数据的数据库

    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    

    创建数据库

    有该数据库会使用,没有该数据库会创建

    use databaseName
    

    集成Springbooot

    添加依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.5.5</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>mongodb_demo_01</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>mongodb_demo_01</name>
        <description>mongodb_demo_01</description>
        <properties>
            <java.version>1.8</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <!--   mongoDB自动装配包     -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-mongodb</artifactId>
            </dependency>
            <!--lombok 省略getter  和 setter-->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <!--测试包,方便测试-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <excludes>
                            <exclude>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                            </exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    

    添加配置

    src/main/resources/application.properties

    #mongoDB 相关配置
    spring.data.mongodb.database=test
    spring.data.mongodb.host=localhost
    spring.data.mongodb.port=27017
    

    创建实体类

    com/example/mongodb_demo_01/pojo/Student.java

    package com.example.mongodb_demo_01.pojo;
    
    import lombok.Builder;
    import lombok.Data;
    
    @Builder
    @Data
    public class Student {
    
        /**
         * 姓名
         */
        private String name;
    
        /**
         * 年龄
         */
        private Integer age;
    
        /**
         * 年级
         */
        private String grade;
    
        /**
         * 班级
         */
        private String classroom;
    }
    

    创建测试类

    com/example/mongodb_demo_01/MongoDBDemo01Test.java

    MongoTemplate用法参考:https://docs.spring.io/spring-data/data-mongo/docs/current/api/org/springframework/data/mongodb/core/MongoTemplate.html

    package com.example.mongodb_demo_01;
    
    import com.example.mongodb_demo_01.pojo.Student;
    import org.junit.jupiter.api.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    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 java.util.List;
    
    @SpringBootTest
    public class MongoDBDemo01Test {
    
        @Autowired
        private MongoTemplate mongoTemplate;
    
        @Test
        public void insert(){
            Student student = Student.builder().name("张三").age(10).grade("一年级").classroom("1班").build();
            mongoTemplate.insert(student);
        }
    
        @Test
        public void update(){
            Query query = new Query();
            query.addCriteria(Criteria.where("grade").is("一年级"));
            mongoTemplate.updateFirst(query, Update.update("age",11),Student.class);
        }
    
        @Test
        public void delete(){
            Query query = new Query();
            query.addCriteria(Criteria.where("age").is(11));
            mongoTemplate.remove(query,Student.class);
        }
    
    
    
        @Test
        public void find(){
            Query query = new Query();
            query.addCriteria(Criteria.where("grade").is("一年级"));
            List<Student> students = mongoTemplate.find(query, Student.class);
            students.forEach(student -> {
                System.out.println(student.toString());
            });
        }
    }
    

    示例代码地址

    spring-boot-projects/ mongodb_demo_01

    https://gitee.com/liuyingke/spring-boot-projects.git

    本文由博客一文多发平台 OpenWrite 发布!

  • 相关阅读:
    Handlebars.js循环中索引(@index)使用技巧(访问父级索引)
    Nutz Dao实体中索引注解的使用(@TableIndexes@Index)
    清爽绿色格调图文box通用样式
    用dom操作替代正则表达式
    简洁清新的box样式
    Sale.js——快速创建促销样式
    BlueDream.js(蓝梦)——jQuery网站使用引导插件
    拉勾网ThoughtWorks面试题代码实现
    (转)设计模式六大原则(6):开闭原则
    (转)设计模式六大原则(3):依赖倒置原则
  • 原文地址:https://www.cnblogs.com/liuyingke/p/15339481.html
Copyright © 2020-2023  润新知