Spring - MongoDB 연결

박민수·2024년 6월 12일

Spring

목록 보기
45/46
post-thumbnail

개요

SpringBoot에서 MongoDB를 연결하고 데이터를 화면에 출력해 보자.

프로젝트 생성 및 의존성 추가

  • Spring Web
  • Spring Data MongoDB
  • Lombok
  • Thymeleaf

application.propertes 작성

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username={username}
spring.data.mongodb.password={password}
spring.data.mongodb.database={데이터베이스 이름}

table 생성 및 데이터 추가

MongoDB에 접속 후 table을 생성하고 테스트용 데이터를 추가해 주었다. (MongoDB 접속 과정 생략)

  • 데이터베이스 선택
use test
  • 데이터 삽입
db.table1.insertOne({data: "Hello, MongoDB!"})
  • 데이터 조회
db.table1.find()

Document 작성

  • 도큐먼트는 MongoDB에서 관리 하는 JSON으로 이루어진 데이터 단위이다. RDB에서 ROW에 해당한다.
package com.example.mongoconnect.document;

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

@Document(collection = "table1")
@Data
public class Table1Document {

    @Id
    private String _id;

    private String data;
}

Repository 작성

package com.example.mongoconnect.repository;

import com.example.mongoconnect.document.Table1Document;
import org.springframework.data.mongodb.repository.MongoRepository;

public interface Table1Repository extends MongoRepository<Table1Document, String> {
}

Controller 작성

package com.example.mongoconnect.controller;

import com.example.mongoconnect.repository.Table1Repository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
@RequiredArgsConstructor
public class MainController {

    private final Table1Repository table1Repository;

    @GetMapping("/")
    public String mainP(Model model) {

        model.addAttribute("DATA", table1Repository.findAll());

        return "index";
    }
}

index.html 작성

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <span th:text="${DATA}"></span>

</body>
</html>

실행 결과

profile
안녕하세요 백엔드 개발자입니다.

0개의 댓글