Spring Framework

JPA) JPA 시작하기

na_o 2021. 7. 9. 19:14
728x90

배울 부분

 

- JPA

SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기

JPA를 사용 안한다면 DB에 맞는 문법을 가지고 SQL을 일일이 다 짜야함

DB를 다른 종류로 바꾸게 된다면 기존 SQL을 바꾼 DB 문법에 맞게 다 바꿔야함

JPA를 사용한다면 DB 종류를 바꾸게 되더라도 문법에 맞춰 쿼리 변경을 안 해도 됨

JPA가 알아서 DB 종류에 맞춰 번역해주기 때문

 

DB에서 '테이블'이라는 용어가 JPA에서는 '도메인'

DB에서 'SQL'이라는 용어가 JPA에서는 'Repository'

 

테이블을 만들 때 적었던 컬럼 이름을 가지고 클래스 만들기

/*Course.java*/
package com.sparta.week02.domain;

@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;

	//Getter, Setter
    public String getTitle() {
        return this.title;
    }

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

	//기본생성자 만든는 것은 @NoArgsConstructor 어노테이션이 기능을 했음
	//생성자
    public Course(String title, String tutor) {
        this.title = title;
        this.tutor = tutor;
    }
}

 

Repository 인터페이스 만들기

/*CourseRepository.java*/
package com.sparta.week02.domain;

public interface CourseRepository extends JpaRepository<Course, Long> {
}

JPA는 Repository를 통해서만 사용 가능

 

- Interface

클래스에서 멤버가 빠진, 메소드 모음집이라고 보면 됨

'Spring Framework' 카테고리의 다른 글

JPA) 생성일자, 수정일자  (0) 2021.07.11
JPA) JPA 사용해보기  (0) 2021.07.11
MYSQL) 테이블 생성, 삽입, 조회  (0) 2021.07.09
RDBMS(Relational DataBase Management System)  (0) 2021.07.09
그레이들(Gradle)이란?  (0) 2021.07.07