본문 바로가기
카테고리 없음

JPA 시작하기

by 소년수 2022. 8. 6.

스프링에서 정말 중요한  DB관리 기능이다 JPA에 대해서 완벽하게 알지는 못하겠지만 최소 개념정도만 알고가자

 

JPA 이해

 

ORM(object Relational Mapping)

객체지향언어와 관계형 데이터베이스를 뜻한다.

웹서버에서 각 프로그래밍언어를 쓰면서 코드를 쓰고 , DB쪽에서도 DB에서만 쓸수있는 코드를 쓰는데, 그 가운데에서 통역역할로 쓰는것이 ORM이다.

 

 

 

JPA는?

Java Persistence API 자바 ORM기술에 대한 표준 명세

쉽게말해 웹서버와 DB사이의 ORM역할을 하는것이 JPA다.

 

JPA의 샘플코드를 살펴보자

@Entity // DB 테이블 역할을 합니다.
public class User {
		// ID가 자동으로 생성 및 증가합니다.
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Id
    private Long id;

    // nullable: null 허용 여부
    // unique: 중복 허용 여부 (false 일때 중복 허용)
    @Column(nullable = false, unique = true)
    private String username;

    @Column(nullable = false)
    private String password;

    @Column(nullable = false, unique = true)
    private String email;

    @Column(nullable = false)
    @Enumerated(value = EnumType.STRING)
    private UserRoleEnum role;

    @Column(unique = true)
    private Long kakaoId;
}

Entity가 DB테이블 역할을 한다.

User라는 클래스에서 id를 기본키값으로 주고 username,password,email,role,kakaoId의 행을 만들어 준다.

저렇게 코드를 실행시키면  

이렇게 USER라는 테이블에 각 넣어준 행값이 만들어진것을 볼 수  있다.

만약 JPA가 없다면?

직접SQL구문을 써서 해결가능하지만 사실상 개무쓸모. JPA를 쓰는게 훨씬 편하다.

 

하이버네이트??

JPA는 표준명세이고 이를 실제 구현한 프레임워크 중 사실상(비공식) 표준 ,

스프링 부트에서는 기본적으로 하이버네이트를 사용 중이다.

 

 

댓글