반응형
- 클라이언트 -> 서버 -> 데이터베이스로 저장
<form>데이터를 DTO객체 컨트롤러도 받는것까지 진행 했다. 이 내용을 DB에 저장해보자
서버(JAVA) -> Database (SQL) 을 연결해야 하는데 이 도구가 JPA다
- JPA
자바 ORM 이다. 즉 컨트롤러의 DTO를 테이블과 매핑시킨다.
Entity와Repository를 통해 Database로 자료를 넘겨 저장해준다.
Entity : 자바객체를 DB가 이해할 수 있게 규격화된 데이터
Repository: 이 데이터를 Database로 넘겨주는 기능을 한다.
아래코드와 출력문을 보면 이렇게 이해할 수 있다.
1.form데이터로 날라온걸 우선 DTO객체로 받는다
2.그리고 컨트롤러에 있는걸 다시 Entity로 바꾼다.
3.마지막으로 Repository에게 Entity로 바뀐걸 DB로 저장하는 부분이다.
이 과정에서 CrudRepository의 기능인 save를 사용한다.
또한 깨알같이 id값도 바뀐모습이다.(GeneratedValue 어노테이션)
@PostMapping("/articles/create")
public String createArticle(ArticleForm form){
// dto에 있는거냐 물음표 나오면 알트 엔터 무슨 문제였을까?
System.out.println(form.toString());
// 1.Dto를 변환 Entity로!
Article article = form.toEntity();
System.out.println(article.toString());
// 2. Repository에게 Entity를 DB에 저장하게 한다.
Article saved = articleRepository.save(article);
System.out.println(saved.toString());
//Crud 리포지토리 기능 가져와서 사용할 수 있다.
return "";
}
각 과정을 이해하는게 우선일거 같다. 스프링부트가 엄청 많은 코드들을 자동으로 해주는게 많구나 새삼스럽게 느끼고
있다. 그냥 과정을 따라가서 이해하는것만 해도 어마한데.... 그래도 큰 그림을 먼저 익혀보자 다시 돌려보면 되니까!
우선은 그림을 그려보자 그리고 공부해보고 싶은게 점점 늘어나긴 하는데 정말 시간이 모자라다!! ㅠ_ㅠ
-참고
스프링 부트, 입문!
반응형
'JAVA, Spring' 카테고리의 다른 글
JAVA Call by value, 클래스 상속(Inheritance) (0) | 2023.04.04 |
---|---|
JAVA 클래스(class) 와 메서드(method) (0) | 2023.04.04 |
Spring Boot CRUD만들어보기 (form, dto, controller 설정) (0) | 2023.04.03 |
JAVA 객체지향 프로그래밍에 대한 이해 (0) | 2023.04.03 |
Spring Boot MVC의 역할과 실행 흐름 , 템플릿제작 (0) | 2023.04.02 |