2022. 4. 17. 14:55ㆍ[DB]/[MongoDB]_DB
목표] 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 에 데이터를 삽입할 수 있다.
'[DB] > [MongoDB]_DB' 카테고리의 다른 글
[MongoDB]_순수 Java 로 연결 및 데이터 삽입, 읽기 (0) | 2022.04.14 |
---|