본문 바로가기

H2

JPA 시작하기

현재 배우는 프로젝트 구성이다.

 

JPA란?

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

 

-설정은 아래 한 줄을 build.gradle > dependencies 에 입력 후 서버 재시작으로 끝(SpringBoot)

implementation 'org.springframework.boot:spring-boot-starter-data-jpa

 

 

-자바로 DB를 사용하도록 도와주는게 JPA

-DB를 이용하는데 핵심이었던 "테이블"과 "SQL"과 동일한 개념의

자바 용어로  "테이블"은 Domain, "SQL"은 Repository 입니다.

Exam.java // 테이블 역할을 하는 도메인 클래스 예제

ExamRepository.java // Repository를 불러오는 인터페이스 예제

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

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

    @Column(nullable = false) // 컬럼 값이고 null값이 올수 없음을 나타냅니다.
    private String title;

    @Column(nullable = false)
    private String tutor;

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

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

    public Exam(String title, String tutor) {
        this.title = title;
        this.tutor = tutor;
    }
}

JpaRepository(공통 인터페이스)

CRUD 처리를 위한 공통 인터페이스이다.
이 인터페이스를 상속받은 인터페이스만 생성하면 해당 엔티티에 대한 CRUD를 공짜로 사용할 수 있게된다.

제네릭<>에는 엔티티 클래스(Entity Class)와 엔티티 클래스가 사용하는 식별자 타입(primary key의 타입)을 넣어주면 된다.

public interface PersonRepository extends JpaRepository<Person, Long> {
}

'H2' 카테고리의 다른 글

JPA CRUD  (0) 2020.11.15
JPA로 생성일자, 수정일자 필드 만들기  (0) 2020.11.15
JPA 사용해보기  (0) 2020.11.15
H2 웹콘솔 띄우기  (0) 2020.11.14