날아라김지원
article thumbnail

- 클라이언트 -> 서버 -> 데이터베이스로 저장

<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 "";
    }

각 과정을 이해하는게 우선일거 같다. 스프링부트가 엄청 많은 코드들을 자동으로 해주는게 많구나 새삼스럽게 느끼고

 

있다. 그냥 과정을 따라가서 이해하는것만 해도 어마한데.... 그래도 큰 그림을 먼저 익혀보자 다시 돌려보면 되니까!

 

우선은 그림을 그려보자 그리고 공부해보고 싶은게 점점 늘어나긴 하는데 정말 시간이 모자라다!! ㅠ_ㅠ

 

 

 

-참고

스프링 부트, 입문!

https://www.inflearn.com/course/%EA%B0%9C%EB%85%90%EC%8B%A4%EC%8A%B5-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%9E%85%EB%AC%B8/dashboard

profile

날아라김지원

@flykimjiwon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!