Spring 게시판 만들기 - 게시판 목록(2)

김상현·2022년 2월 21일
2

🌈게시판 목록 만들기

이전까지는 기본적인 환경설정 작업을 해주었습니다. 이제 게시판 목록을 먼저 만들어보도록 하겠습니다.#### DB에 테이블을 먼저 설정해 줍니다.

🌻 DB 테이블 설정

🌷BOARD 테이블을 생성해줍니다.

BOARD_CODE : 게시판 번호
BOARD_TITLE : 게시판 제목
BOARD_CONTENT : 게시판 내용
BOARD_WRITER : 게시판 작성자
BOARD_REGDATE : 게시판 날짜

PRIMARY KEY 는 기본키라고 하는데 기본키를 BOARD_CODE로 설정해줬습니다. 이 기본키는 나중에 수정이나 삭제 작업을 위해 쓰일겁니다.

CREATE SEQUENCE BOARD_SEQ; CREATE SEQUENCE BOARD_CODE_SEQ;는 시퀀스를 생성해 주겠다는 의미입니다. 오타가 있네요;; BOARD_CODE_SEQ로 해야합니다.

🌷SEQUENCE는 순서를 뜻하는 것으로 몇가지 작동을 어떤 기준에 따라 공간적 또는 시간적으로 순서를 정해 놓는 것을 말합니다. 오라클에서 행을 구분하기 위해 기본 키를 두는데 그 기본 키는 중복된 값을 가질 수 있기때문에 항상 유일한 값을 가져야합니다. 그런 기본 키가 유일한 값을 갖도록 사용자가 직접 생성하는 것이 아닌 숫자를 자동으로 생성해주는 명령어를 의미합니다.

시퀀스까지 만들어 주고 난 뒤에 SELECT*FROM 테이블명으로 테이블을 조회해봅니다.

지금은 데이터를 추가 하지 않았기 때문에 조회를 해도 데이터가 없는 것을 알 수 있습니다.

🌷Spring에서 package와 게시판 제작에 필요한 Controller Service , ServiceImpl , DaoImpl , dto를 만들어 줍니다.

--> dto를 만들어 주고 난 뒤에 getter & setter도 같이 만들어줍니다.

🌷Controller Service Dao에도 각자에 맞는 설정들을 해줍니다.

*private static final Logger log 부분은 Console 창에서 값들이 잘 넘어가는지 보여주기 위해서 작성했습니다.

🌷DB와 연결해주는 Mapper도 만들어줍니다.

🌻 역할들 소개

지금까지 Controller Service Dao Mapper등등 제작에 필요한 것들을 만들었습니다.
그럼 이제 이 아이들이 무슨 역할을 하는 지 알아보도록 하겠습니다.

Controller는 웹에서 처리해야 할 데이터를 받습니다.
그리고 이 데이터를 담당할 Service를 선택해 호출합니다.
처리한 데이터를 다음 페이지에서 볼 수 있도록 셋팅해 이동할 페이지를 리턴합니다.
Service는 데이터를 Dao를 통해 넘겨주고 받으면서 비즈니스 로직을 수행해주는 역할을 합니다.
Dao는 DB를 통해 데이터를 조회하거나 수정 삭제 해주는 역할을 합니다
Dto는 DB에 있는 테이블 컬럼 값을 java에서 객체로 다루기 위해 사용합니다.

🌻 로직 작성

*Mapper

-Mapper에 로직을 추가해줍니다. parameterType 은 board에서 가져오는 거기 떄문에 board로 작성해주고 쿼리는 select를 이용하여 작성해주면 됩니다.

*DaoImpl

-return값에 BoardList는 Mapper의 id값과 동일하게 하기 위해서 작성한것이고 board의 객체들을 boardList라는 이름에 담아주어 selectList로 보여주기 위함이라 생각하면 됩니다.

*ServiceImpl

-bd.list(board)는 bd(BoardDaoImpl)에 있는 list(board)함수를 호출해서 반환하겠다는 뜻입니다.

*Service

-BoardDaoImpl와 연결되는 부분입니다.

*Controller

-BoardController에 URL은 /list로 정해주고 Oracle -> Dao -> Service -> Controller로 가져온 데이터들을 jsp에 뿌려주는 작업을 해야합니다.
model은 데이터를 담은 그릇이고 addAttribute("boardlist",list)부분은 위에 service에 담긴 list를 boardlist라는 이름으로 model에 담는걸로 해석하시면 될거같습니다.

*jsp

-list.jsp파일을 만들어 준뒤 코드를 입력해줍니다.
<c:forEach items="${boardlist}" var="boardlist"> 에서 forEach는 받은 ${boardlist}값 만큼 반복해주는건데 자바에서 for문과 비슷한 역할을 합니다. 여기서 boardlist는 controller에서 이름을 boardlist로 정한 bs.list(board)를 가져온 것입니다. 그리고 var는 ${boardlist}를 boardlist라는 이름으로 선언해준것입니다.
그리고 forEach 와 jstl을 쓸려면 상단에 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 를 꼭 써줘야합니다.

🌻실행

이제 실행을 하게 되면 목록 화면이 뜨게 됩니다. 아직 데이터가 없기 때문에 이렇게 화면이
보여지게 되고 다음에 게시판 작성부분으로 넘어가겠습니다.

profile
아가개발자

0개의 댓글