자, 그럼 이번에는 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가 출력되는 것을 볼 수 있다.
다음은 해당 레코드의 상세 보기를 할 수 있도록 작업을 해볼 것이다.
'Springboot' 카테고리의 다른 글
Springboot CRUD게시판 - update (2) | 2024.03.01 |
---|---|
Springboot CRUD게시판 - selectOne (getGuestbook) (2) | 2024.02.27 |
Springboot CRUD게시판 - select (0) | 2024.02.20 |
Springboot 기본 설정(pom.xml - jsp, servlet, jstl / controller) (0) | 2024.02.13 |
VSCode로 Springboot 시작하기 (다운부터 실행까지) (0) | 2024.02.06 |