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은 컬럼을 지정해준다.
엔티티에 정의한대로 데이터베이스에 컬럼이 만들어진다.
'강의 따라하기 > member2' 카테고리의 다른 글
06. 로그인 하기 (0) | 2023.12.28 |
---|---|
05. 회원가입_회원가입 완료 (0) | 2023.12.28 |
05. 회원가입_입력한 정보 컨트롤러로 전달하기 (0) | 2023.12.28 |
05. 회원가입_회원가입 페이지 요청하기 (0) | 2023.12.28 |
04. 기본주소 요청하기 (0) | 2023.12.28 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기