Heim > Java > javaLernprogramm > So konfigurieren Sie die MongoDB-Datenbank in SpringBoot2

So konfigurieren Sie die MongoDB-Datenbank in SpringBoot2

PHPz
Freigeben: 2023-05-11 18:28:12
nach vorne
1485 Leute haben es durchsucht

1. Einführung in NoSQL

1. NoSQL (Not Only SQL), was „nicht nur SQL“ bedeutet. Ein allgemeiner Begriff für Datenbankverwaltungssysteme, die sich von herkömmlichen relationalen Datenbanken unterscheiden. NoSQL wird für die Speicherung sehr großer Datenmengen verwendet. Diese Arten von Datenspeichern erfordern kein festes Schema und können ohne redundante Vorgänge skaliert werden.

2. Vorteile/Nachteile von NoSQL

--优点:
高可扩展性
分布式计算
低成本
架构的灵活性,半结构化数据
没有复杂的关系
--缺点:
没有标准化
有限的查询功能(到目前为止)
数据展现不直观
Nach dem Login kopieren

2. MongoDB-Datenbank

1. Einführung in MongoDB

MongoDB ist ein Produkt zwischen einer relationalen Datenbank und einer nicht relationalen Datenbank. Es ist die funktionsreichste und einer relationalen Datenbank am ähnlichsten unter den nicht relationalen Datenbanken. Die unterstützte Datenstruktur ist sehr locker und ein BJSON-Format ähnlich JSON, sodass komplexere Datentypen gespeichert werden können. Das größte Merkmal von MongoDB ist, dass die von ihm unterstützte Abfragesprache in gewisser Weise einer objektorientierten Abfragesprache ähnelt. Sie kann fast die meisten Funktionen realisieren, die Einzeltabellenabfragen in relationalen Datenbanken ähneln, und unterstützt auch die Indizierung von Daten.

2. MongoDB-Funktionen

1) MongoDB ist in der Sprache C++ geschrieben und ein Open-Source-Datenbanksystem, das auf verteilter Dateispeicherung basiert.

2) Unter hohen Lastbedingungen kann das Hinzufügen weiterer Knoten die Serverleistung sicherstellen.

3) MongoDB zielt darauf ab, skalierbare, leistungsstarke Datenspeicherlösungen für WEB-Anwendungen bereitzustellen.
4) MongoDB speichert Daten als Dokument und die Datenstruktur besteht aus Schlüssel-Wert-Paaren (Schlüssel=>Wert). MongoDB-Dokumente ähneln JSON-Objekten. Feldwerte können andere Dokumente, Arrays und Dokumentarrays enthalten.

3. Integration mit SpringBoot2#

1. MongoDB-Basisumgebung

# 打开命令行
MongoDB4.0\bin>mongo
# 展示所有数据库
> show databases
# 新建一个admin数据库,命令比较难为情
> db.admin.insert({"name":"管理员数据库"});
# 使用admin数据库
> use admin
# 创建root用户,具有读写权限
> db.createUser({user:"root",pwd:"root",roles:[{role:"readWrite",db:"admin"}]})
  Successfully added user:
Nach dem Login kopieren

2. Kernabhängigkeiten

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
Nach dem Login kopieren

3. Konfigurationsdatei

Benutzername: root

Passwort: root

Datenbank: admin

spring:
  data:
    mongodb:
      uri: mongodb://root:root@localhost:27017/admin
Nach dem Login kopieren

4. Kapselungsanwendungsschnittstelle
public interface ImgInfoRepository {
    void saveImg(ImgInfo imgInfo) ;
    ImgInfo findByImgTitle(String imgTitle);
    long updateImgInfo(ImgInfo imgInfo) ;
    void deleteById(Integer imgId);
}
Nach dem Login kopieren
#🎜🎜 # 5. Der Kerncodeblock

MongoDB wird wie folgt verwendet.

import com.boot.mongodb.entity.ImgInfo;
import com.boot.mongodb.repository.ImgInfoRepository;
import com.mongodb.client.result.UpdateResult;
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 org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class ImgInfoRepositoryImpl implements ImgInfoRepository {
    @Resource
    private MongoTemplate mongoTemplate;
    @Override
    public void saveImg(ImgInfo imgInfo) {
        mongoTemplate.save(imgInfo) ;
    }
    @Override
    public ImgInfo findByImgTitle(String imgTitle) {
        Query query=new Query(Criteria.where("imgTitle").is(imgTitle));
        return mongoTemplate.findOne(query,ImgInfo.class);
    }
    @Override
    public long updateImgInfo(ImgInfo imgInfo) {
        Query query = new Query(Criteria.where("imgId").is(imgInfo.getImgId()));
        Update update= new Update().set("imgTitle", imgInfo.getImgTitle()).set("imgUrl", imgInfo.getImgUrl());
        UpdateResult result = mongoTemplate.updateFirst(query,update,ImgInfo.class);
        return result.getMatchedCount();
    }
    @Override
    public void deleteById(Integer imgId) {
        Query query = new Query(Criteria.where("imgId").is(imgId));
        mongoTemplate.remove(query,ImgInfo.class);
    }
}
Nach dem Login kopieren

6. Codeblock testen

import com.boot.mongodb.MongoDBApplication;
import com.boot.mongodb.entity.ImgInfo;
import com.boot.mongodb.repository.ImgInfoRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
import java.util.Date;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MongoDBApplication.class)
public class MongoTest {
    @Resource
    private ImgInfoRepository imgInfoRepository ;
    @Test
    public void test1 (){
        ImgInfo record = new ImgInfo() ;
        record.setImgId(1);
        record.setUploadUserId("A123");
        record.setImgTitle("博文图片");
        record.setSystemType(1) ;
        record.setImgType(2);
        record.setImgUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
        record.setLinkUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
        record.setShowState(1);
        record.setCreateDate(new Date());
        record.setUpdateDate(record.getCreateDate());
        record.setRemark("知了");
        record.setbEnable("1");
        imgInfoRepository.saveImg(record);
    }
    @Test
    public void test2 (){
        ImgInfo imgInfo = imgInfoRepository.findByImgTitle("博文图片") ;
        System.out.println("imgInfo === >> " + imgInfo);
    }
    @Test
    public void test3 (){
        ImgInfo record = new ImgInfo() ;
        record.setImgId(1);
        record.setUploadUserId("A123");
        record.setImgTitle("知了图片");
        record.setSystemType(1) ;
        record.setImgType(2);
        record.setImgUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
        record.setLinkUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
        record.setShowState(1);
        record.setCreateDate(new Date());
        record.setUpdateDate(record.getCreateDate());
        record.setRemark("知了");
        record.setbEnable("1");
        long result = imgInfoRepository.updateImgInfo(record) ;
        System.out.println("result == >> " + result);
    }
    @Test
    public void test4 (){
        imgInfoRepository.deleteById(1);
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie die MongoDB-Datenbank in SpringBoot2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage