Rumah >Java >javaTutorial >Bagaimana untuk mengkonfigurasi pangkalan data MongoDB dalam SpringBoot2

Bagaimana untuk mengkonfigurasi pangkalan data MongoDB dalam SpringBoot2

PHPz
PHPzke hadapan
2023-05-11 18:28:121460semak imbas

1. Pengenalan kepada NoSQL

1. Konsep NoSQL

NoSQL ( Bukan Sahaja SQL ), yang bermaksud "bukan hanya SQL". Istilah umum untuk sistem pengurusan pangkalan data yang berbeza daripada pangkalan data hubungan tradisional. NoSQL digunakan untuk penyimpanan data berskala sangat besar. Jenis stor data ini tidak memerlukan skema tetap dan boleh diskalakan tanpa operasi berlebihan.

2. Kelebihan/kelemahan NoSQL

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

2. pangkalan data MongoDB

1. -pangkalan data hubungan Produk antara pangkalan data adalah yang mempunyai fungsi terkaya dan paling serupa dengan pangkalan data hubungan antara pangkalan data bukan hubungan. Struktur data yang disokongnya sangat longgar dan merupakan format bjson seperti json, jadi ia boleh menyimpan jenis data yang lebih kompleks. Ciri terbesar MongoDB ialah bahasa pertanyaan yang disokongnya sangat berkuasa Sintaksnya agak serupa dengan bahasa pertanyaan berorientasikan objek Ia hampir dapat merealisasikan kebanyakan fungsi yang serupa dengan pertanyaan jadual tunggal dalam pangkalan data hubungan, dan ia juga menyokong pengindeksan. daripada data.

2. Ciri MongoDB

1) MongoDB ditulis dalam bahasa C++ dan merupakan sistem pangkalan data sumber terbuka berdasarkan storan fail yang diedarkan.

2) Dalam keadaan beban tinggi, menambah lebih banyak nod boleh memastikan prestasi pelayan.

3) MongoDB bertujuan untuk menyediakan penyelesaian storan data berprestasi tinggi yang boleh skala untuk aplikasi WEB.
4) MongoDB menyimpan data sebagai dokumen dan struktur data terdiri daripada pasangan nilai kunci (key=>value). Dokumen MongoDB adalah serupa dengan objek JSON. Nilai medan boleh mengandungi dokumen lain, tatasusunan dan tatasusunan dokumen.

3. Integrasi dengan SpringBoot2

1. Persekitaran asas MongoDB

# 打开命令行
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:

2. Fail konfigurasi

Nama pengguna: root

Kata laluan: root

Pangkalan data: admin

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

4. Antara muka aplikasi terkapsul

spring:
  data:
    mongodb:
      uri: mongodb://root:root@localhost:27017/admin

5 mengikuti.
public interface ImgInfoRepository {
    void saveImg(ImgInfo imgInfo) ;
    ImgInfo findByImgTitle(String imgTitle);
    long updateImgInfo(ImgInfo imgInfo) ;
    void deleteById(Integer imgId);
}

6. Blok kod ujian

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

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi pangkalan data MongoDB dalam SpringBoot2. 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