폼 데이터를 db에 저장하기(H2 Database)
- 자바에서 DB를 사용하기 위해서 JPA를 사용한다. JPA는 DB를 조작할 수 있고, 편리한 기능을 제공한다
- 컨트롤러는 DTO로 폼 데이터를 받는데, 그것을 Entity라는 객체에 전달한다. Entity는 DB에 규격화된 데이터다.
- Entity는 Repository를 통해 DB에 전달되고 처리된다.
- 폼데이터를 갖는 DTO를 Entity로 바꾼다.
- Entity 클래스를 만든다. (@Entity)
- 필드에는 DTO가 갖고 있는 데이터를 받을 변수를 선언한다.(@Column)
- 그리고 대표값을 만든다.(id, @ID)
- DTO 클래스에서 toEntity메소드를 만들어 컨트롤러에서 메소드를 이용해 DTO의 데이터를 Entity로 만든다.
- Repository에게 Entity를 DB 안에 저장하게 한다.
- 컨트롤러에서 Entity를 Repository에게 전달한다.
- Repository 인터페이스를 만든다. JPA가 제공하는 클래스를 상속 받아 CrudRepository 메소드를 사용할 수 있다. 상속 받을 땐, Entity객체와, 그 Entity의 대표값의 타입을 파라미터로 전달한다.
- DB에서 직접 확인.
- application.properties 파일에서 H2 데이터베이스가 웹 콘솔로 접근할 수 있도록 허용해준다.
- 직접 조회해서 확인한다.
Lombok을 통해 코드를 줄일 수 있다.
- Lombok은 코드를 간소화시키는 라이브러리이다. 필수 코드의 반복을 줄여주고 로깅(Logging) 기능을 제공한다.
- build.gradle 파일에 dependencies안에 롬복 라이브러리를 추가한다. 그리고 새로고침해서 라이브러리들을 다운 받는다.
- 롬복 플러그인을 추가한다.
- 클래스를 작성할 때, 생성자, toString() 같은 기본 코드들을 클래스 위에 어노테이션을 붙여 직접 작성하지 않아도 되게 해준다.
- @AllArgsConstructor - 모든 필드를 매개값으로 받는 생성자.
- @ToString - toString() 메소드
- 롬복은 로깅 기능을 제공한다.
- 로그가 아니라 print 함수를 사용한다면, 기록이 남지도 않고 서버의 성능에도 좋지 않다.
- 컨트롤러 위에 @Slf4j 어노테이션을 붙인다.
- log.into(인자) 메소드로 로깅 기능을 사용한다.
홍팍님의 강의를 보고 적은 글입니다.
클라우드스터딩 | CloudStudying
cloudstudying.kr
'study > Spring boot' 카테고리의 다른 글
6. Spring boot 입문 - DB에 저장된 데이터 목록 페이지 만들기 (0) | 2021.01.21 |
---|---|
5. Spring boot 입문 - DB에 저장된 데이터 출력하기 (0) | 2021.01.21 |
3. Spring boot 입문 - 레이아웃, 웹페이지에서 데이터 받기 (0) | 2021.01.20 |
2. Spring boot 입문 - 내용이 변하는 페이지 (0) | 2021.01.19 |
1. Spring boot 입문 - 시작 - 개념 (0) | 2021.01.19 |