꾸물꾸물 졔의 개발공부
Springboot에서 MongoDB 연동 본문
- org.springframework.boot : version '2.7.5'
의존성 추가 및 DB 연결
build.gradle
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb-reactive'
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
application.yml
spring:
data:
mongodb:
port: '27017'
host: 52.79.215.19
authentication-database: admin
username: o2a4
database: o2a4
password: 'password'
- host : localhost 또는 MongoDB를 설치한 서버의 IP
- port : 포트번호
- 계정 및 데이터베이스 정보
Entity 생성
Chats.java
@Data
@Document(collection = "chats")
@TypeAlias("chats")
public class Chats {
@Id
private String _id;
private String userid;
private String content;
private String sendTime;
@Builder
public Chats(String userid, String content, String sendTime){
this.userid = userid;
this.content = content;
this.sendTime = sendTime;
}
}
** 변수명에 (_) 언더스코어는 사용이 불가능하다. 몽고DB는 JPA 방식을 사용하는데, Spring-data-JPA 에서 (_) 는 예약어로 사용되기 때문이다.
어노테이션 Annotation
- @Data : Lombok 라이브러리가 제공하는 어노테이션으로, getter와 setter를 자동 생성해준다.
- @Document : 몽고DB 의 어떤 Collection에 접근하여 데이터를 가져올지 명시한다.
- @TypeAlias : 별칭 지정, 이후에 mapper에서 접근할 때 별칭으로만 접근 가능하다. TypeAlias를 지정하지 않았을 경우엔, com.user.dto.~~ 처럼 패키지명을 포함하여 클래스명을 입력해야 한다.
빌더 패턴 Builder
Builder 패턴을 사용해서 객체를 생성한다. id는 따로 지정하지 않고 자동으로 부여되는 ObjectID를 받을 것이기 때문에 빌더에 포함시키지 않는다.
ChatRepository.java
@Repository
public interface ChatsRepository extends MongoRepository<Chats, Integer> {
}
MongoRepository를 상속받은 interface < Collection명, id >
Service.java
JSONObject jsonObject = (JSONObject) jsonParser.parse(record.value());
String userid = jsonObject.get("userid").toString();
String content= jsonObject.get("content").toString();
String send_at= jsonObject.get("send_at").toString();
Chats chats= Chats.builder().userid(userid).content(content).sendTime(send_at).build();
chatsRepository.save(chats);
builder() 를 통해 객체를 생성한 후, chatsRepository 인터페이스의 save() 함수를 통해 DB에 INSERT
'Database > MongoDB' 카테고리의 다른 글
[MongoDB] 샤딩(Sharding)이란 (0) | 2023.05.12 |
---|---|
MongoDB - MongoDB Compass 설치 및 연결 (0) | 2022.11.24 |
MongoDB - 사용자 추가 및 인증 추가 (0) | 2022.11.24 |
MongoDB - Ubuntu 20.04에 MongoDB설치 (0) | 2022.11.24 |