H2
JPA 시작하기
코린이 연대기
2020. 11. 15. 00:26
현재 배우는 프로젝트 구성이다.
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> {
}