본문 바로가기
Spring/Spring Boot

[SpringBoot] DataBase를 연동한 게시판 구현3

by dbjh 2019. 12. 22.
반응형

지난 시간에는 DataBase Developer Tool을 이용하여 미리 데이터를 넣어둔 상태에서 게시판 상세페이지를 보여주는 실습을 진행 하였다. 이번시간에는 게시판 추가, 수정의 기능을 추가해보도록 하자.

우선은, 기존에 게시판 게시글이 하나 밖에 없어서 시퀀스관리가 필요없었다. 하지만 만약 게시판 생성이 여러번 일어난다면, 각각의 게시판을 구분할 수 있도록 고유키(Primary key)를 관리해야한다.
고유키 관리는 DB에서 하기 때문에 기존에 생성해두었던 테이블의 컬럼을 수정하여 게시판의 고유키를 관리해보도록하자.

아래 글을 참고하여 board 테이블에 데이터가 insert되면, board_no 값이 자동증가할 수 있도록 컬럼을 수정하자.

 

[PostgreSQL] Auto increment 하는 방법

1. 테이블을 새로 생성하여 적용하는 경우 (기존방식) -- 1. 시퀀스생성 CREATE SEQUENCE 시퀀스이름; -- ex CREATE SEQUENCE board_sequence; CREATE SEQUENCE board_sequence START 1; -- 2. 테이블 생성하면서..

dbjh.tistory.com

PostgreSQL이 지원하는 Auto increment 기능을 사용하면  board_no 자동증가를 설정할 수 있다.
아래의 쿼리를 DBeaver에서 실행시키도록하자.

-- 1. 시퀀스생성
create sequence "board_sequence";

-- 2. 컬럼에 생성한 시퀀스 적용
alter table board alter column board_no set default nextval ('board_sequence');

 

그런 후에, 이전글에서 설명한 board.xml의 쿼리를 Repository의 메소드에서 실행하는 방식을 그대로 사용하여 BoardRepository 클래스와 board.xml의 태그 및 쿼리를 수정하도록 하자.

코드를 확인하려면 아래의 github 링크를 참고하도록 하자.

 

Yujaehyeong/BootBoard

SpringBoot Board. Contribute to Yujaehyeong/BootBoard development by creating an account on GitHub.

github.com

수정된 파일경로는 아래와 같다.

// 게시판 목록페이지
templates/views/board/board.html

// 게시판 작성페이지
templates/views/board/write.html

// 게시판 상세페이지
templates/views/board/view.html

// 게시판 수정페이지
templates/views/board/modify.html

// Controller
com/example/practice/controller/BoardController.java

// Service
com/example/practice/service/BoardService.java

// Repository
com/example/practice/repository/BoardDao.java

// 쿼리관리 xml
mybatis/mapper/board.xml

 

위의 경로의 파일들을 위에 github 링크를 참고하여 수정하면, 아래와 같은 페이지를 확인할 수 있다.

1. 게시판 목록페이지
2. 게시판 작성페이지
3. 게시판 상세페이지
4. 게시판 수정페이지

 

이렇게 게시판 목록, 등록, 수정의 기능이 생기도록 해봤다.

다음 글 부터는 좀더 세밀한 기능을 구현하면서, Spring에서 지원하는 기술들을 적용해보도록하자.

반응형

댓글