본문 바로가기
Spring boot

Stringboot (board 테이블 연결)

by z00h 2021. 9. 29.

기존의 Test파일을 모방하여 mariadb의 board테이블을 연결하였다.

 

 

 

BoardController.java

package kr.ac.daegu.springbootapi.board.controller;

import kr.ac.daegu.springbootapi.board.model.BoardDTO;
import kr.ac.daegu.springbootapi.board.service.BoardService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping(value = "/board")
@RequiredArgsConstructor
@Slf4j
public class BoardController {

    public final BoardService boardService;

    @GetMapping(value = "/")
    public List<BoardDTO> rootTest() throws Exception {
        log.trace("logTest~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); // 로그의 5단계 trace(일반적으로 남기는 이벤트 기록) -> debug(디버깅용) -> info(알림) -> warn(경고) -> error(에러)
        log.debug("logTest~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        log.info("logTest~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        log.warn("logTest~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        log.error("logTest~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

        // board list 생성
        List<BoardDTO> boardList = boardService.getBoardList();

        return boardList;
    }
}

 

 

 

 

BoardDTO

package kr.ac.daegu.springbootapi.board.model;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

@AllArgsConstructor
@Getter
@Setter
public class BoardDTO {
    private int id;
    private String author;
    private String subject;
    private String content;
    private  java.sql.Date writeDate;
    private java.sql.Timestamp writeTime;
    private int readCount;
    private int commentCount;
    private String password;
    private int replyRootId;
    private int depth;
    private int orderNum;
}

 

핵심은 boardDTO의 데이터타입에 유의하여 board 테이블에 맞는 데이터타입을 DTO에 명시한다.

*처음에 실수로 잘못 데이터타입을 입력하여 postman에서 결과를 도출할때 몇번 오류가 났다.

 

 

 

 

 

BoardDAO

package kr.ac.daegu.springbootapi.board.model;

import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface BoardDAO {
    List<BoardDTO> getBoardList();
}

 

 

 

 

 

BoardService

package kr.ac.daegu.springbootapi.board.service;

import kr.ac.daegu.springbootapi.board.model.BoardDAO;
import kr.ac.daegu.springbootapi.board.model.BoardDTO;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;

@RequiredArgsConstructor
@Service
public class BoardService {

    public final BoardDAO boardDAO;
    public List<BoardDTO> getBoardList() {
        return boardDAO.getBoardList();
    }
}

 

 

 

 

Boardmapper.xml

 

xml파일에서 기존의 Test 테이블관련 코드 (4~10)줄을 주석처리하고 Board 테이블 쿼리를 담아 냈다.

 

 

 

 

postman에 board를 요청한 결과

 

정상적으로 잘 출력이 되었다.