웹개발자의 봄, 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. 제네릭
'Web > Spring' 카테고리의 다른 글
Sparta Coding Club_웹개발자의 봄, Spring (타임라인 서비스STEP1) (0) | 2021.09.06 |
---|---|
Sparta Coding Club_웹개발자의 봄, Spring (API) (0) | 2021.09.05 |
Sparta Coding Club_웹개발자의 봄, Spring (@RestController) (0) | 2021.09.01 |
Sparta Coding Club_웹개발자의 봄, Spring (JAVA 기초문법) (0) | 2021.09.01 |
Sparta Coding Club_웹개발자의 봄, Spring (웹의 기본개념) (0) | 2021.08.31 |