美文网首页
MongoDB开发之 插入和查询

MongoDB开发之 插入和查询

作者: 五月笙 | 来源:发表于2020-12-24 16:58 被阅读0次

构建项目

初始化

spring init -b=2.2.7.RELEASE -j=1.8 -d=web,data-mongodb --build=gradle my-mongodb && cd my-mongodb

gradle版本配置(有固定的gradle版本可以忽略):

> vim gradle/wrapper/gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

项目配置application.properties修改:

> vim src/main/resources/application.properties
# 端口
server.port=8082

# MONGO
spring.data.mongodb.database=machine
spring.data.mongodb.host=192.168.2.234
spring.data.mongodb.port=27017
spring.data.mongodb.username=<mongodb-username>
spring.data.mongodb.password=<mongodb-passport>
spring.data.mongodb.authentication-database=admin

为了使用方便,可以添加lombook配置:

> vim build.gradle
# 其他配置不变
dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
        implementation 'org.springframework.boot:spring-boot-starter-web'
        testImplementation('org.springframework.boot:spring-boot-starter-test') {
                exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
        }

        compileOnly 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'
}

更多参考:lombook

插入和查询

添加模型:

> vim src/main/java/com/example/mymongodb/Machine.java

package com.example.mymongodb;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

/**
 * @author by Remer
 * @date on 2020-12-23
 */

@Document(collection = "machine")
@Data
public class Machine {

    @Id
    private String id;
    private String machineName;
    private String fenceName;
    private String remark;
}

控制器代码:

> vim src/main/java/com/example/mymongodb/MongoController.java

package com.example.mymongodb;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author by Remer
 * @date on 2020-12-23
 */

@RestController
public class MongoController {

    private MongoService mongoService;

    @Autowired
    public MongoController(MongoService mongoService) {
        this.mongoService = mongoService;
    }

    @PostMapping("/machines")
    public String insert(){
        return mongoService.insert();
    }

    @GetMapping("/machines")
    public List<Machine> list() {
        return mongoService.findAll();
    }
}

服务层代码:

> vim src/main/java/com/example/mymongodb/MongoService.java

package com.example.mymongodb;

import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;

/**
 * @author by Remer
 * @date on 2020-12-23
 */

@Service
public class MongoService {

    private MongoTemplate mongoTemplate;

    @Autowired
    public MongoService(MongoTemplate mongoTemplate) {

        this.mongoTemplate = mongoTemplate;
    }

    public String insert() {

        List<Machine> machines = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            Machine machine = new Machine();
            machine.setMachineName("测试机械" + i);
            machine.setFenceName("测试机械围栏" + i);
            machine.setRemark("测试机械备注" + i);
            machines.add(machine);
        }
        mongoTemplate.insert(machines, Machine.class);
        return "success";
    }

    public List<Machine> findAll() {
        return mongoTemplate.findAll(Machine.class);
    }
}

插入

(POST) http://localhost:8082/machines

返回数据:

"success"

查询

(GET) http://localhost:8082/machines

返回数据:

[
    {
        "id": "5fe2dff06ad8e42376f13e59",
        "machineName": "测试机械0",
        "fenceName": "测试机械围栏0",
        "remark": "测试机械备注0"
    },
    {
        "id": "5fe2dff06ad8e42376f13e5a",
        "machineName": "测试机械1",
        "fenceName": "测试机械围栏1",
        "remark": "测试机械备注1"
    },
    {
        "id": "5fe2dff06ad8e42376f13e5b",
        "machineName": "测试机械2",
        "fenceName": "测试机械围栏2",
        "remark": "测试机械备注2"
    },
    {
        "id": "5fe2dff06ad8e42376f13e5c",
        "machineName": "测试机械3",
        "fenceName": "测试机械围栏3",
        "remark": "测试机械备注3"
    }
    *** 省略数据 ***
]

参考

Spring Data MongoDB
lombook

相关文章

网友评论

      本文标题:MongoDB开发之 插入和查询

      本文链接:https://www.haomeiwen.com/subject/moymnktx.html