>  기사  >  Java  >  SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법

SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법

王林
王林앞으로
2023-05-13 14:07:161115검색

1. MongoDB란

MongoDB는 우리가 익숙한 관계형 데이터베이스(MySQL, Oracle)와 다릅니다. MongoDB는 필요한 확장성과 유연성은 물론 필수 쿼리와 인덱스도 갖춘 문서 데이터베이스입니다.

MongoDB는 JSON과 유사한 유연한 문서에 데이터를 저장합니다. 즉, 문서의 필드는 문서마다 다를 수 있고 데이터 구조는 시간이 지남에 따라 변경될 수 있습니다. 문서 모델은 애플리케이션 코드의 개체에 매핑되므로 데이터 작업이 쉬워집니다. MongoDB는 핵심이 분산된 데이터베이스이므로 고가용성, 확장 및 지리적 분산이 내장되어 있으며 사용하기 쉽습니다. 게다가 MongoDB는 무료이며 오픈 소스입니다.

2. Windows에 설치 설치 10 mongodb 공식 웹 사이트를 열고 MSI 버전을 다운로드 (설치 버전)

SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법 다운로드하면 사용자 정의를 선택하면 조심해야합니다. 확인하지 마세요. 시각화 플러그인을 설치하세요. 그렇지 않으면 설치 속도가 매우 느려집니다(인터넷 속도가 충분히 빠르지 않은 경우)

SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법

3. MongoDB 서비스 구성

환경 변수 구성

SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법현재 경로 복사

내 컴퓨터 -> 마우스 오른쪽 버튼 클릭 ->고급 시스템 설정->환경 변수->시스템 변수

SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법시스템 변수에서 경로를 찾아 위에서 복사한 경로를 편집하고 추가하세요

4. 서비스 시작

win+R-> services.msc

SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법

서비스 시작 후 브라우저에 SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법127.0.0.1:2701

을 입력합니다. 영어라는 줄이 나타나면 서비스가 성공적으로 시작되었음을 의미합니다. SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법

5. SpringBoot는 MongoDB를 통합

SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법

환경 준비

운영 체제: Window10

IDE: IntelliJ IDEA 2018.2.4SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법

데이터베이스: MongoDB

1) 종속성 소개

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

2) 추가 응용 프로그램에서 다음을 수행합니다. yml 구성

spring:
  data:
    mongodb:
      uri: mongodb://localhost/test_mongodb
전체 구성 정보는 다음과 같습니다.
spring:
  data:
    mongodb:
      authentication-database: # Authentication database name.
      database: # Database name.
      field-naming-strategy: # Fully qualified name of the FieldNamingStrategy to use.
      grid-fs-database: # GridFS database name.
      host: # Mongo server host. Cannot be set with URI.
      password: # Login password of the mongo server. Cannot be set with URI.
      port: # Mongo server port. Cannot be set with URI.
      repositories:
        type: # Type of Mongo repositories to enable.
      uri: # Mongo database URI. Cannot be set with host, port and credentials.
      username: # Login user of the mongo server. Cannot be set with URI.

3) 엔터티 클래스 UserEntity를 추가합니다

public class UserEntity {
    @Id
    private String uid;
    private String username;
    private String password;
    public String getUid() {
        return uid;
    }
    public void setUid(String uid) {
        this.uid = uid;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "UserEntity{" +
                "uid=&#39;" + uid + &#39;\&#39;&#39; +
                ", username=&#39;" + username + &#39;\&#39;&#39; +
                ", password=&#39;" + password + &#39;\&#39;&#39; +
                &#39;}&#39;;
    }
}

4) 새 테스트를 만듭니다. 여기서는 MongoDB를 보기 위한 시각화 도구로 navicat을 사용합니다.

테스트 1: 삽입 작업

    @Autowired
    private MongoTemplate mongoTemplate;
    @Test
    public void saveUser(){
        UserEntity userEntity1 = new UserEntity();
        UserEntity userEntity2 = new UserEntity();
        UserEntity userEntity3 = new UserEntity();
        userEntity1.setUid("111");
        userEntity1.setUsername("用户1");
        userEntity1.setPassword("密码1");
        userEntity2.setUid("222");
        userEntity2.setUsername("用户2");
        userEntity2.setPassword("密码2");
        userEntity3.setUid("333");
        userEntity3.setUsername("用户3");
        userEntity3.setPassword("密码3");
        mongoTemplate.save(userEntity1);
        mongoTemplate.save(userEntity2);
        mongoTemplate.save(userEntity3);
    }

데이터베이스 정보:

MongoDB가 자동으로 데이터베이스를 생성하고 엔터티 클래스(종종 데이터 테이블이라고 부르는 것)를 통해 컬렉션을 생성한 것을 볼 수 있습니다. MongoTemplate을 전달했습니다. 데이터베이스의 userEntity 컬렉션에 여러 문서(즉, 여러 레코드 삽입)를 삽입합니다. 그리고

_id

는 기본 키이고,

_class

는 엔터티 클래스 패키지 이름 + 클래스 이름

테스트 2: 쿼리 작업

    @Autowired
    private MongoTemplate mongoTemplate;
	@Test
    public void findUserByUserName(){
        String username = "用户1";
        Query query=new Query(Criteria.where("username").is(username));
        UserEntity user =  mongoTemplate.findOne(query , UserEntity.class);
        System.out.println(user);
    }

출력 결과:

SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법UserEntity{uid='111', 사용자 이름='User 1 ', 비밀번호='password1'}

테스트 3: 업데이트 작업

  @Autowired
    private MongoTemplate mongoTemplate;    
	@Test
    public void updateUser(){
        UserEntity userEntity = new UserEntity();
        userEntity.setUid("111");
        userEntity.setUsername("更新后的用户名");
        userEntity.setPassword("更新后的密码");
        Query query = new Query(Criteria.where("_id").is(userEntity.getUid()));
        Update update = Update.update("username",userEntity.getUsername()).set("password",userEntity.getPassword());
        //更新返回结果集的第一条
        mongoTemplate.updateFirst(query,update,UserEntity.class);
        //更新返回结果集的所有
        //mongoTemplate.updateMulti(query,update,UserEntity.class);
    }
업데이트된 데이터베이스는 그림과 같습니다.

테스트 4: 삭제 작업

    @Autowired
    private MongoTemplate mongoTemplate; 
	@Test
    public  void DeleteByUserId(){
        String id = "222";
        Query query=new Query(Criteria.where("_id").is(id));
        mongoTemplate.remove(query,UserEntity.class);
    }
삭제 후 데이터베이스는 다음과 같습니다. 사진:

위 내용은 SpringBoot가 Mongodb를 통합하여 추가, 삭제 및 변경을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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