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

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

PHPz
풀어 주다: 2023-05-11 18:28:12
앞으로
1492명이 탐색했습니다.

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿