>Java >java지도 시간 >SpringBoot2에서 MongoDB 데이터베이스를 구성하는 방법

SpringBoot2에서 MongoDB 데이터베이스를 구성하는 방법

PHPz
PHPz앞으로
2023-05-11 18:28:121464검색

1. NoSQL 소개

1. NoSQL 개념

NoSQL(Not Only SQL)은 "SQL뿐만 아니라"라는 뜻입니다. 기존 관계형 데이터베이스와 다른 데이터베이스 관리 시스템에 대한 일반적인 용어입니다. NoSQL은 매우 큰 규모의 데이터를 저장하는 데 사용됩니다. 이러한 유형의 데이터 저장소에는 고정된 스키마가 필요하지 않으며 중복 작업 없이 확장할 수 있습니다.

2. NoSQL의 장점/단점

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

2. MongoDB 데이터베이스

1. MongoDB 소개

MongoDB는 비관계형 데이터베이스 중에서 가장 풍부한 기능을 가지고 있습니다. 관계형 데이터베이스와 가장 유사합니다. 지원하는 데이터 구조는 매우 느슨하고 json과 유사한 bjson 형식이므로 더 복잡한 데이터 유형을 저장할 수 있습니다. MongoDB의 가장 큰 특징은 지원하는 쿼리 언어가 매우 강력하다는 것입니다. 구문은 관계형 데이터베이스의 단일 테이블 쿼리와 유사한 대부분의 기능을 수행할 수 있으며 인덱싱도 지원합니다. 데이터.

2. MongoDB 기능

1) MongoDB는 C++ 언어로 작성되었으며 분산 파일 저장 기반의 오픈 소스 데이터베이스 시스템입니다.
2) 부하가 높은 조건에서는 노드를 추가하면 서버 성능을 보장할 수 있습니다.
3) MongoDB는 웹 애플리케이션을 위한 확장 가능한 고성능 데이터 스토리지 솔루션을 제공하는 것을 목표로 합니다.
4) MongoDB는 데이터를 문서로 저장하며, 데이터 구조는 키-값(키=>값) 쌍으로 구성됩니다. MongoDB 문서는 JSON 개체와 유사합니다. 필드 값에는 다른 문서, 배열, 문서 배열이 포함될 수 있습니다.

3. SpringBoot2

1. 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:

3. 구성 파일

사용자 이름: root

암호: root

데이터베이스: admin

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

4.
spring:
  data:
    mongodb:
      uri: mongodb://root:root@localhost:27017/admin
5. 핵심 코드 블록

MongoDB는 다음과 같이 사용됩니다.

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

6. 테스트 코드 블록

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

위 내용은 SpringBoot2에서 MongoDB 데이터베이스를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제