Rumah  >  Artikel  >  Java  >  Apakah kaedah untuk mengintegrasikan mongodb dengan springboot?

Apakah kaedah untuk mengintegrasikan mongodb dengan springboot?

WBOY
WBOYke hadapan
2023-05-26 14:50:311375semak imbas

1. Pemasangan dan pengenalan Mongodb

1.1 Pengenalan

Sebagai sistem pangkalan data sumber terbuka, MongoDB dibina menggunakan bahasa C++ dan menggunakan teknologi storan fail teragih. Di bawah keadaan beban yang tinggi, menambah lebih banyak nod boleh memastikan prestasi pelayan. Matlamat MongoDB adalah untuk menyediakan penyelesaian storan data berskala dan berprestasi tinggi untuk menyediakan aplikasi web. MongoDB menggunakan dokumen berdasarkan pasangan nilai kunci untuk menyimpan struktur data. Dokumen MongoDB adalah serupa dengan objek JSON. Nilai medan boleh mengandungi dokumen lain, tatasusunan dan tatasusunan dokumen.

Apakah kaedah untuk mengintegrasikan mongodb dengan springboot?

1.2 Pemasangan

Terdapat banyak tutorial pemasangan dalam talian, jadi saya tidak akan memberitahu lebih lanjut di sini.

1.3 Konfigurasikan pembolehubah persekitaran dan semak pemasangan

Konfigurasi di sini adalah serupa dengan konfigurasi jdk, tiada butiran lanjut! Lihat pangkalan data pemasangan dan permulaan

Apakah kaedah untuk mengintegrasikan mongodb dengan springboot?

2 springboot mengintegrasikan mongodb

Untuk menjimatkan ruang, banyak komen dan baris kosong telah dialih keluar, harap maafkan saya !

Pengenalan maven dalam fail 2.1pom

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

konfigurasi fail 2.2properties

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

Penyediaan lapisan 2.3dao

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);
    }
}

Penyediaan lapisan perkhidmatan 2.4

Di sini anda perlu membiasakan diri dengan beberapa kaedah pengendalian biasa mongodb, hanya gunakan dan amalkan lebih banyak lagi! ! ! !

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 Penyediaan lapisan conreoller

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 Penyediaan lapisan kelas entiti (dua kelas disatukan, sila ingat untuk memisahkannya)

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;
}

Atas ialah kandungan terperinci Apakah kaedah untuk mengintegrasikan mongodb dengan springboot?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam