Springboot

Springboot CRUD게시판 - insert

colin2 2024. 2. 24. 23:50

2024.02.20 - [Springboot] - Springboot CRUD게시판 - select

 

자, 그럼 이번에는 guestbook 테이블에 값을 추가하기 위한 작업을 시작해 보자.

 

이전에 getGuestbookList.jsp 파일에 만들어 놓은 글쓰기 버튼을 활용할 것이다.

 

우선 이 버튼을 클릭하면 guestbookForm.do로 이동할 수 있도록 GuestbookController.java 파일에 추가하고, 이때 guestbook -> guestbookForm.jsp로 이동할 수 있도록 해준다.

 

view -> guestbook 폴더에 guestbookForm.jsp 파일을 추가하고, 입력 폼을 작성해 준다.

 

번호와 날짜는 자동으로 입력될 것이기 때문에 따로 받지 않고, 저장하기 버튼을 누르면 guestbookInsert.do로 이동하게 해 주었다.

 

이제 guestbookInsert.do로 이동하면 방명록이 추가될 수 있도록 GuestbookController.java 파일에 추가를 해주자.

 

GuestbookService.java에 guestbookInsert를 추가해 주고,

 

GuestbookServiceImpl.java에서 implments 해주고,

 

GuestbookDao에도 guestbookInsert를 추가해 준다.

 

그다음 guestbook-mapper.xml 파일에 이에 맞는 insert를 추가해 준다.

 

guestbook_idx는 이전에 만들어놓은 guestbook_seq를 이용해 주었고, guestbook_today는 DB에서 default를 잡아두었기 때문에 따로 적지 않는다.

 

이제 입력 확인을 위해 글쓰기 버튼을 눌러 방명록을 입력해 보자.

 

저장하기 버튼을 눌렀을 때 insert가 잘 적용되는 것을 볼 수 있다.

 

여기에서 개인적으로 느끼는 시퀀스의 단점이 눈에 보인다. 

 

시퀀스 자체가 여러 테이블에서 중복되지 않는 기본키(primary key)로 사용하기 위한 객체이다 보니, 건드리기만 해도 시퀀스가 +1씩 하기 때문에 insert를 하지 않았는데도 번호가 저렇게 올라가 있는 것을 볼 수 있다.

 

하지만 나는 정돈된 느낌을 좋아하기 때문에 이번에는 가장 큰 guestbook_idx의 값에 +1을 할 수 있도록 쿼리문을 수정해 주었다.

 

아직 삭제를 추가하지 않았기 때문에 오라클에서 20021번을 삭제하고 commit까지 해주었다.

 

폼에서 다시 등록.

 

현재 가장 큰 번호가 20001이었기 때문에, 거기에 +1을 한 20002가 출력되는 것을 볼 수 있다.

 

다음은 해당 레코드의 상세 보기를 할 수 있도록 작업을 해볼 것이다.