May29.log
로그인
May29.log
로그인
[스프링부트] 3장 게시판 만들고 새 글 작성하기 : Create
May29
·
2023년 11월 21일
팔로우
0
스프링부트
목표는 완독 🫠
1. 폼 데이터란 (p98)
폼 데이터 : html form 태그에 실려 전송되는 데이터
form 태그에 실려 전송되는 데이터는 컨트롤러가 객체(=DTO)에 담는다
DTO : Data Transfer Object
2. 폼 데이터 DTO로 받기(p99~110)
2-1. (기본) View, Controller 만들기
2-1-1. view
fri.mustache 파일을 생성한다 (그냥 오늘이 금요일이라 fri로 했다 연습이니까..)
아래처럼 코드를 작성한다
기본 레이아웃은 2장에서 사용했던 것을 사용했다
2-1-2. controller
FriController 자바를 생성한다
아래처럼 코드를 작성한다
2-1-3. 확인
localhost:8080/fri
2-2. 데이터 전송/받기
2-2-1. 데이터 전송
fri 페이지에서 입력한 제목과 내용 데이터를 어디로, 어떻게 보낼지 정한다
어디로 : action="/accept"
어떻게 : method="post"
get과 post가 있는데
get은 URL 내용을 포함하고, post는 HTML 본문에 포함
2-2-2. 데이터 받기
전송되는 데이터는 컨트롤러의 DTO에 담겨서 받아진다
DTO 생성 → View 와 DTO 연결 → 컨트롤러와 DTO 연결
1) DTO 생성
FriDTO 자바를 생성한다
아래와 같이 코드를 작성한다
각 전송받을 데이터가 제목과 내용이니까 title과 content로 지정
2) View와 DTO 연결
각 내용이 입력될 곳에 다음과 같이 추가한다
3) 컨트롤러와 DTO 연결
FriDTO를 dto로 연결한다
FriDTO의 toString() 메서드를 출력한다
4) 확인
DTO에 데이터가 잘 담겨져 있는지 확인한다
localhost:8080/fri 페이지에서 제목과 내용을 입력하고 Submit 버튼을 누르면 Run 페이지에서 다음과 같이 출력되는걸 볼 수 있다
3. DTO DB에 저장(p111~126)
스프링부트 생성 때 추가한 H2 Database가 DB가 된다
DB를 제어할 때 SQL 대신 JPA를 사용한다
스프링부트 생성 때 추가한 Spring Data JPA가 이 역할을 한다
DTO를 엔티티로 변환 → 리파지터리로 엔티티를 DB에 저장
엔티티 : 이를 기반으로 테이블이 만들어진다
리파지터리 : 엔티티가 DB 속 테이블에서 관리할 수 있게 한다
3-1. DTO를 엔티티로 변환
3-1-1. 엔티티 자바 파일 생성(클래스 생성)
FriEntity 자바 파일 생성
아래와 같이 코드 작성
DTO에서 받았던 데이터를 다시 엔티티로 받아온다
3-1-2. DTO 파일에 엔티티 메서드 추가
FriDTO 파일에 다음 코드를 추가한다
받은 데이터를 FriEntity(엔티티)로 보낸다
3-1-3. 컨트롤러에 DTO를 엔티티 변환하는 코드 작성
FriController에 다음 코드를 추가한다
3-2. 리파지터리로 엔티티를 DB에 저장
DTO에서 엔티티로 변환됐고 이 엔티티는 리파지터리로 DB에 저장하고 관리한다
3-2-1. 리파지터리 인터페이스 파일 생성
FriRepository 인터페이스 파일 생성
FriRepository 파일에 다음과 같이 코드를 추가한다
CrudRespository로 DB에 데이터를 생성, 읽기, 수정, 삭제 등 기본 동작을 사용할 수 있다
FriController 파일에 다음과 같이 코드를 추가한다
3-3. 확인
localhost:8080/fri 에서 제목과 내용을 입력하고 출력값을 확인해 본다
첫째줄 : DTO가 받은 데이터
두번째줄 : DTO에서 엔티티로 변환된 후
세번째줄 : DB에 저장된 데이터 출력
웹에서 데이터를 입력받으면 DTO가 받고 엔티티로 변경하고 리파지터리를 이용해서 DB에 저장한다
근데 왜 DTO에서 엔티티로 변경하는 과정을 거쳐야 하는 거지?
4. DB 조회(p127~133)
1) application.properties에서 다음과 같이 추가한다
첫번째 줄에 있는 거는 웹에서 한글이 ??로 출력되면 추가하는 거다
2) localhost:8080/h2-console 에 접속
JDBC URL에는 매실행마다 값을 찾아서 넣어줘야 한다
RUN 탭에서 ctrl+f로 jdbc를 찾아서 'jdbc:h2:mem: ~'으로 되는 걸 붙여넣는다
그리고 Connet를 누른다
3) 확인
localhost:8080/fri에서 제목과 내용을 입력하면
값이 실시간으로 추가되는걸 볼 수 있다(물론 Run을 눌러야)
끝!🥳🥳
May29
안녕하세요 좋은날입니다
팔로우
이전 포스트
[스프링부트] 2장 - MVC 패턴 이해와 실습
다음 포스트
[스프링부트] 4장 롬복과 리팩터링
0개의 댓글
댓글 작성