JAVA, Spring
Spring Boot CRUD만들어보기 (데이터생성 JPA, DB로저장)
flykimjiwon
2023. 4. 3. 21:58
반응형
- 클라이언트 -> 서버 -> 데이터베이스로 저장
<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 "";
}
각 과정을 이해하는게 우선일거 같다. 스프링부트가 엄청 많은 코드들을 자동으로 해주는게 많구나 새삼스럽게 느끼고
있다. 그냥 과정을 따라가서 이해하는것만 해도 어마한데.... 그래도 큰 그림을 먼저 익혀보자 다시 돌려보면 되니까!
우선은 그림을 그려보자 그리고 공부해보고 싶은게 점점 늘어나긴 하는데 정말 시간이 모자라다!! ㅠ_ㅠ
-참고
스프링 부트, 입문!
반응형