Hello

05. 회원가입_DB 연동하기

by 볼빵빵오춘기

패키지 나누기

dto, entity, service, repository 생성한다.

 

MemberService

  • service 패키지 하위에 MemberService.java 생성한다.
  • @Service는 스프링이 관리해주는 스프링 빈으로 등록해준다.
package com.example.member2.service;

import org.springframework.stereotype.Service;

@Service
public class MemberService {

}

 

MemberDTO

  • dto 패키지 하위에 MemberDTO.java 생성한다.
  • dto는 클래스는 회원정보에 필요한 내용들을 필드로 정의하고 그 필드에 대해서 코딩하는 규칙을 클래스에 private로 정의 해주는 것 그 필드를 사용하기 위해서는 getter, setter를 통해서 간접적으로 사용하게 된다. @Getter, @Setter Lombok이 제공해주는 라이브러리가 알아서 만들어주며 @Getter @Setter @ToString Lombok이 제공해주는 라이브리리이다.
  • @NoArgsConstructor 기본 생성자를 만들어준다.
  • @ToString dto 객체가 가지고 있는 필드값을 출력할때 toString()를 사용하는데 toString()을 만들어주는 Lombok 제공 라이브러리이다.
package com.example.member2.dto;

import lombok.*;

@Getter
@Setter
@NoArgsConstructor
@ToString
public class MemberDTO {
    private Long id;
    private String memberEmail;
    private String memberPassword;
    private String memberName;
}

 

MemberService

  • service 패키지 하위에 MemberService.java 생성한다.
package com.example.member2.service;

import com.example.member2.dto.MemberDTO;
import com.example.member2.repository.MemberRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class MemberService {

    private final MemberRepository memberRepository; // Service 클래스에서는 또 Repository를 호출해야 하기 때문에 선언
    public void save(MemberDTO memberDTO) {

    }
}

 

MemberRepository

  • repository 패키지 하위에 MemberRepository.java 생성한다.
  • JpaRepository를 상속받는다.
  • JpaRepository<MemberEntity, Long> 여기서 첫 번째 파라미터는 어떤 엔티티를 상속받느냐이고 두번째 파라미터는 PK의 타입이다.
package com.example.member2.repository;

import com.example.member2.entity.MemberEntity;
import org.springframework.data.jpa.repository.JpaRepository;

public interface MemberRepository extends JpaRepository<MemberEntity, Long> {
}

 

MemberEntity

  • entitiy 패키지 하위에 MemberEntity.java 생성한다.
  • 이렇게 해주면 실행했을 때 연결된 db에 테이블이 잘 생성된다.
package com.example.member2.entity;

import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;

@Entity
@Setter
@Getter
@Table(name="member2")
public class MemberEntity {
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long id;

    @Column(unique = true)
    private String memberEmail;

    @Column
    private String memberPassword;

    @Column
    private String memberName;

}

 

※ 엔티티클래스가 일종의 테이블 역할을 하게된다.

테이블이 있고 자바클래스나 메서드를 이용해 어떤 쿼리를 쓰는 전송해서 테이블과의 crud처리를 한다.

생각을 하게되는데 jpa라는 것을 db의 테이블을 자바 객체처럼 활용할 수 있게 해준다.

엔티티는 @Entity 어노테이션을 붙여준다. 

DB에 클래스에 정의한다대로 테이블이 생성된다.

테이블이름을 정하는 부분 우리가 보통 테이블을 정의할 떄는 PK를 정의할 떄는 @ID라는 어노테이션을 쓰고

@GeneratedValue(strategy= GenerationType.AUTO) (h2에서는 auto_increment 를 지정)

@Column은 컬럼을 지정해준다.

엔티티에 정의한대로 데이터베이스에 컬럼이 만들어진다.

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기