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 发布!