Heim  >  Artikel  >  Java  >  Was ist die Methode zur Integration von Mongodb mit Springboot?

Was ist die Methode zur Integration von Mongodb mit Springboot?

WBOY
WBOYnach vorne
2023-05-26 14:50:311330Durchsuche

1.Mongodb-Installation und Einführung

1.1 Einführung

Als Open-Source-Datenbanksystem wird MongoDB in der Sprache C++ erstellt und nutzt verteilte Dateispeichertechnologie. Unter Hochlastbedingungen kann das Hinzufügen weiterer Knoten die Serverleistung sicherstellen. Das Ziel von MongoDB ist die Bereitstellung einer skalierbaren und leistungsstarken Datenspeicherlösung für Webanwendungen. MongoDB verwendet Dokumente, die auf Schlüssel-Wert-Paaren basieren, um Datenstrukturen zu speichern. MongoDB-Dokumente ähneln JSON-Objekten. Feldwerte können andere Dokumente, Arrays und Dokumentarrays enthalten.

Was ist die Methode zur Integration von Mongodb mit Springboot?

1.2-Installation

Es gibt auch viele Online-Installationsanleitungen, daher werde ich hier nicht mehr sagen.

1.3 Umgebungsvariablen konfigurieren und Installationsstatus überprüfen

Die Konfiguration hier ähnelt der JDK-Konfiguration, keine weiteren Details! Sehen Sie sich die Installations- und Startdatenbank an

Was ist die Methode zur Integration von Mongodb mit Springboot?

2. Springboot integriert Mongodb

Um Platz zu sparen, wurden viele Kommentare und Leerzeilen entfernt, bitte verzeihen Sie mir!

Einführung von Maven in 2.1POM-Dateien

<!-- mongodb -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

2.2Eigenschaftendateikonfiguration

#################mongodb################
#spring.data.mongodb.uri=mongodb://username:password@localhost:27017/test
spring.data.mongodb.uri=mongodb://localhost:27017/springboot

2.3Dao-Layer-Schreiben

package com.lengmo.dao;
 
import com.lengmo.entity.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
import java.util.List;
 
@Component
public class MongoDbDao {
    @Autowired
    private MongoTemplate mongoTemplate;
    public void save(Student s) {
        mongoTemplate.save(s);
    }
    public Student get(Query query) {
        return mongoTemplate.findOne(query,Student.class);
    }
    public List<Student> findAll() {
        return mongoTemplate.findAll(Student.class);
    }
    public void update(Query query, Update update) {
        mongoTemplate.updateMulti(query,update,Student.class);
    }
    public void delete(Query query) {
        mongoTemplate.remove(query,Student.class);
    }
}

2.4Service-Layer-Schreiben

Hier müssen Sie mit einigen gängigen Betriebsmethoden von Mongodb vertraut sein, verwenden Sie einfach mehr und übe mehr! ! ! !

package com.lengmo.service;
 
import com.lengmo.dao.MongoDbDao;
import com.lengmo.entity.Hobbies;
import com.lengmo.entity.Student;
import org.springframework.beans.factory.annotation.Autowired;
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 org.springframework.stereotype.Service;
import java.util.List;
 
@Service
public class MongoDbService {
    @Autowired
    private MongoDbDao mongoDbDao;
    public void save() {
        Student s=new Student();
        s.setName("lis");
        s.setAge(17);
        s.setSex(1);
        s.setHeight(182);
        Hobbies h=new Hobbies();
        h.setHname("swing");
        s.setHobbies(h);
        mongoDbDao.save(s);
    }
    public Student get() {
       //and查询
        /* Criteria criteriaName=Criteria.where("name").is("lisi");
        Criteria criteriaAage=Criteria.where("age").is(17);
        Criteria andCriteria = new Criteria();
        andCriteria.andOperator(criteriaName,criteriaAage);
        Query query=new Query(andCriteria);*/
        //or查询
        Criteria criteriaName=Criteria.where("name").is("lisi");
        Criteria criteriaAage=Criteria.where("age").gt(16);
        Criteria orCriteria = new Criteria();
        orCriteria.orOperator(criteriaName,criteriaAage);
        Query query=new Query(orCriteria);
 
        return  mongoDbDao.get(query);
    }
    public List<Student> findAll() {
        return mongoDbDao.findAll();
    }
    public void update() {
        Query query=new Query(Criteria.where("name").is("zhangsan"));
        Update update=new Update();
        update.set("age",30);
        update.set("height",188);
        update.set("hobbies.hname","basketball");
        mongoDbDao.update(query,update);
    }
    public void delete() {
        Query query=new Query(Criteria.where("name").is("zhangsan"));
        mongoDbDao.delete(query);
    }
}

2.5 Schreiben der Conreoller-Schicht

package com.lengmo.controller;
 
import com.lengmo.entity.Student;
import com.lengmo.service.MongoDbService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
 
@RestController
@RequestMapping("/mongodb")
public class MongoDbController {
    @Autowired
    private MongoDbService mongoDbService;
    @RequestMapping("/save")
    public void save(){
        mongoDbService.save();
    }
    @RequestMapping("/get")
    public Student get(){
        return mongoDbService.get();
    }
    @RequestMapping("/findAll")
    public List<Student> findAll(){
        return mongoDbService.findAll();
    }
 
    @RequestMapping("/update")
    public void update(){
        mongoDbService.update();
    }
    @RequestMapping("/delete")
    public void delete(){
        mongoDbService.delete();
    }
}

2.6 Schreiben der Entity-Klassenschicht (die beiden Klassen werden zusammengefügt, bitte denken Sie daran, sie zu trennen)

package com.lengmo.entity;
import lombok.Data;
import javax.persistence.Id;
 
@Data
//之所以没有像 mysql那样需要@table标签去标注我们的表名与实体类的对应关系。是因为 mongodb默认类名即与表名对应。
public class Student{
    @Id
    private String id;
    private String name;
    private Integer age;
    private Integer sex;
    private Integer height;
    private Hobbies hobbies;
}
 
 
 
package com.lengmo.entity;
import lombok.Data;
 
@Data
public class Hobbies {
    private  String hname;
}

Das obige ist der detaillierte Inhalt vonWas ist die Methode zur Integration von Mongodb mit Springboot?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen