본문 바로가기

Web/Spring

Sparta Coding Club_웹개발자의 봄, Spring (JPA Start)

웹개발자의 봄, Spring 2주차

JPA 시작하기

  • Java Persistence API (자바 ORM 기술에 대한 API 표준 명세)
  • 한마디로 ORM을 사용하기 위한 인터페이스를 모아둔 것 이라고 볼 수 있다.
  • 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.

Object Realational Mapping이다. 쉽게 말하면 오브젝트를 데이터베이스에 연결하는 방법론인 JPA를 알아보고,

시작해보는 스텝이다.

 

 

 

 

 


 

 

 

 

 

Spring JPA 와 RDBMS 관계

 

 

 

RDBMS와 매칭하여 기능 영역을 기억하기

 

  • 도메인은 Table, 리포지토리는 SQL의 영역을 담당한다고 기억하자.

 

 

 


 

 

 

domain 패키지 생성

 

 

domain 패키지 내부 Class & Repository 생성

 

  • 우선 도메인 패키지를 생성하여 테이블이 될 클래스를 생성해주고
  • 테이블에 대한 SQL영역을 담당할 리포지토리를 인터페이스로 생성한다.

 

 

 

Class

 

@NoArgsConstructor // 기본생성자를 대신 생성해준다.
@Entity // 테이블임을 나타냅니다.
public class Course {

    @Id // ID 값, Primary Key로 사용하겠다는 뜻입니다.
    @GeneratedValue(strategy = GenerationType.AUTO) // 자동 증가 명령입니다.
    private Long id;

    @Column(nullable = false) // 컬럼 값이고 반드시 값이 존재해야 함을 나타냅니다.
    private String title;

    @Column(nullable = false)
    private String tutor;

    public String getTitle() {
        return this.title;
    }

    public String getTutor() {
        return this.tutor;
    }

    public Course(String title, String tutor) {
        this.title = title;
        this.tutor = tutor;
    }
}
  • @Entity를 선언 함으로써 해당 클래스가 테이블의 역할을 한다는 것을 명시해준다.

 

 

Repository

 

public interface CourseRepository extends JpaRepository<Course, Long> {

}
  • 해당 인터페이스가 JPA 인터페이스를 상속 받는다는 의미이다.
  • 인터페이스는 클래스에서 멤버가빠진, 메소드의 모음집이라고 생각한다.
  • Course클래스를 식별하고 ID의 데이터 타입(프라이머리키)이 Long이라고 지정한것

 

 

 


 

 

 

 

추가 학습 사항

1.인터페이스와 상속

2. 제네릭