본문 바로가기
Spring Boot/Spring Boot 입문 홍팍

[Spring boot] (8) 데이터 생성하기 with JPA

by 몰라닉네임 2023. 8. 1.

Mission

 JPA를 활용하여, DB에 데이터를 생성하시오 

 

0. JPA,Entity, Repository

 

1.처리 흐름개요

- 순서 1.DTO를 변환! Entity로

Article article = form.toEntity();


form.toEntity() 라는 메서드로 호출하여
Article article이라는 타입의 엔티티로 반환해오는 작업
Article article = form.toEntity();

 

- 순서 2.Repository에게 Entity를 DB안에 저장하게 함 (3. 데이터 저장하기)

 

2-1. 엔티티로 변환
-Article class를 추가
-package 생성 -> entity/Article.java
-여기에 DTO랑 거의 똑같음. title이랑 content를 받을건데
-@entity라는 어노테이션을 붙혀줘야 DB가 해당 객체를 인식 가능!
-DB가 이해할수 있게 객체에 @column이라고 명시해준다.
-DB에서 관리하는 테이블이라는 단위에 연결되게 만들어준것.
-private Long id;
-대표값을 넣어줘야함. @id // 대표값을 지정! like a 주민등록번호
-@GeneratedValue // 1, 2, 3, ... 자동 생성 어노테이션.

 

2-2. 변환 메소드 추가
toEntity(); 해당 메서드를 만들어야함.
DTO 메서드로 이동하면 toEntity 메서드를 만들어줌.
return new Article(id: null, title, content);
반환을 해줌 엔티티인 Article 객체를.

 

3. 데이터 저장하기 

Article saved = articleRepository.save(article);
return "";
articleRepository가 save할껀데 무엇을? 위에서 만든 article 데이터를
무엇으로 반환할것이냐? Article 엔티티 타입으로 saved라는 이름으로 반환시킨다.
articleRepository객체를 사용하기 위해 필드에
private ArticleRepository articleRepository; 선언

 

3-1. 리파지터리 작성
package 생성 어디에? controller에   repository/ArticleRepository(인터페이스)로 ! 
상속! public interface ArticleRepository extends CrudRepository<Article, Long>
ArticleRepository는 CrudRepository가 제공하는 기능들을 정의없이 그냥 사용할 수 있다
<Article, Long> <관리대상, 대표값의 타입>

 

3-2 객체 주입하기 (DI)
필드부분에 @Autowired을 사용하면
@Autowired // 스프링 부트가 미리 생성해놓은 객체를 가져다가 자동 연결시켜준다.!
private ArticleRepository articleRepository;

 

4.데이터 저장확인

Article 내용에 id=1 값이 생긴 것을  알 수 있다.


  • 0. JPA,Entity, Repository

java 언어를 DB가 이해할 수 있게 해줄뿐 아니라 데이터 관리에 편리한 여러 기능들까지 제공한다. 

JPA 의 핵심도구로는 Entity 와 Repository가 있다.  (위 그림 참고)

  • Entity

java 객체를 DB가 이해할 수 있게 잘 규격화된 데이터이다.  

  • Repository

이러한 Entity는 Repository 라는 일꾼을 통해서 DB에게 전달되고 처리된다. DB속 테이블에 관리되는 거다. 

(아랙 그림 참고)

 

 

 

 

 

 

 

 

 

 

 

🔥 구글링 훈련하기

  • JPA 개념
  • JPA 리파지터리란
  • JPA Entity 사용법
  • @Entity
  • @Table
  • @Id
  • @GeneratedValue
  • @Column
  • DTO Entity 분리 장점
  • JPA CrudRepository
  • @Autowired

 

내용참고

https://www.youtube.com/channel/UCpW1MaTjw4X-2Y6MwAVptcQ

 

홍팍

클라우드스터딩 | CloudStudying | 온라인 코딩학습 | 프로그래밍 강의 채널 https://cloudstudying.kr

www.youtube.com