[MongoDB]_Springboot 에 mongoDB연결 및 데이터 입력(_insert)

2022. 4. 17. 14:55[DB]/[MongoDB]_DB

728x90
반응형

목표] Springboot 에 Mongodb 연결후 데이터 삽입 확인

 

Tool : Intellij

DB: MongoDB

빌더 : Maven

 

---

1. Springboot project 생성

 

next 다음에는 3가지 Dependency 추가한다

pom.xml 에 다음 Dependency 추가

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

 

+Lombok 은 @Data 어노테이션으로 Getter 와 Setter을 쓰지 않아도 되는 간편함을 제공한다.

본문에서는 getter와 setter를 적용하고 진행하겠습니다.

 

 

2. application.propertise 추가]

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.database=inventory
spring.data.mongodb.username=debezium
spring.data.mongodb.password=dbz

 

DB에 접속할 정보를 입력합니다.

 

mogodb.host -> 접속할 db의 ip 주소

mongodb.port -> 접속할 db의 port 번호

mongodb.authentication-database -> 접속할 계정이 위치한 db의 이름

mongodb.database - > 접속할 database 이름

mongodb.username -> 접속할 계정 이름

mongodb.password -> 접속할 계정 비밀번호

 

3.MongoDBConfig.java 파일 생성

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.core.convert.DbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;

@Configuration
public class MongoDBConfig {
    @Bean
    public MappingMongoConverter mappingMongoConverter(
            MongoDatabaseFactory mongoDatabaseFactory,
            MongoMappingContext mongoMappingContext
    ) {
        DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDatabaseFactory);
        MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext);
        converter.setTypeMapper(new DefaultMongoTypeMapper(null));
        return converter;
    }
}

 

해당 파일은 접속정보를 Springboot의 bean에 등록하기 위해서 작성합니다.

 

 

4. Model 생성]

 

Book.java 클래스를 생성합니다.

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;


@Document(collection = "test")
public class Book {

    @Id
    private String id;
    private String data;
    private String time;


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }
}

 

3-1] Spring boot에서는 MongoTemplate 혹은 MongoRepository의 기능을 제공합니다.

 

Mongo Template

별도 파일생성없이 바로 Autowired 로 MongoTemplate 받아서 사용 가능하다

@SpringBootApplication
public class MongoinsertApplication {

    @Autowired
    private MongoTemplate mongotemplate;


    public static void main(String[] args){
        SpringApplication.run(MongoinsertApplication.class, args);
    }

    @Bean
    public ApplicationRunner applicationRunner(){
        return args -> {

           Book book = new Book();
           book.setId("1");
           book.setData("test");
           book.setTime("2022-04-17");
           mongotemplate.insert(book)


        };
    }
}

Mongo Repository

BookRepository.interface를 생성한다

import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;


import java.util.List;
@Repository
public interface BookRepository extends MongoRepository<Book,String> {
   
}

 

 

MongoRepository를 상속받아서 사용한다.

앞에는 사용할 클래스 -> 모델

뒤에는 key의 타입으로 준다.

 

run 파일 수정

@SpringBootApplication
public class MongoinsertApplication {

    @Autowired
    private MongoRepository mongorepository;


    public static void main(String[] args){
        SpringApplication.run(MongoinsertApplication.class, args);
    }

    @Bean
    public ApplicationRunner applicationRunner(){
        return args -> {

           Book book = new Book();
           book.setId("1");
           book.setData("test");
           book.setTime("2022-04-17");
           mongorepository.insert(book)


        };
    }
}

 

2가지 방법으로 mongodb 에 데이터를 삽입할 수 있다.

728x90
반응형

'[DB] > [MongoDB]_DB' 카테고리의 다른 글

[MongoDB]_순수 Java 로 연결 및 데이터 삽입, 읽기  (0) 2022.04.14