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 |