지난 시간에는 DataBase Developer Tool을 이용하여 미리 데이터를 넣어둔 상태에서 게시판 상세페이지를 보여주는 실습을 진행 하였다. 이번시간에는 게시판 추가, 수정의 기능을 추가해보도록 하자.
우선은, 기존에 게시판 게시글이 하나 밖에 없어서 시퀀스관리가 필요없었다. 하지만 만약 게시판 생성이 여러번 일어난다면, 각각의 게시판을 구분할 수 있도록 고유키(Primary key)를 관리해야한다.
고유키 관리는 DB에서 하기 때문에 기존에 생성해두었던 테이블의 컬럼을 수정하여 게시판의 고유키를 관리해보도록하자.
아래 글을 참고하여 board 테이블에 데이터가 insert되면, board_no 값이 자동증가할 수 있도록 컬럼을 수정하자.
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 링크를 참고하도록 하자.
수정된 파일경로는 아래와 같다.
// 게시판 목록페이지
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 링크를 참고하여 수정하면, 아래와 같은 페이지를 확인할 수 있다.
이렇게 게시판 목록, 등록, 수정의 기능이 생기도록 해봤다.
다음 글 부터는 좀더 세밀한 기능을 구현하면서, Spring에서 지원하는 기술들을 적용해보도록하자.
'Spring > Spring Boot' 카테고리의 다른 글
[SpringBoot] TimeZone 설정 후 출력하기 (0) | 2021.02.03 |
---|---|
[SpringBoot] Spring Boot Scheduler(Cron) 사용방법 (0) | 2020.07.25 |
[SpringBoot] DataBase를 연동한 게시판 구현2 (0) | 2019.12.04 |
[SpringBoot] DataBase를 연동한 게시판 구현1 (0) | 2019.12.03 |
[SpringBoot] 게시판 구현3(DB 연결없음) (1) | 2019.11.17 |
댓글