본문 바로가기

개발스터디/스프링부트 JPA 스터디 (21년)

[JPA] 2. 객체 매핑이란?

우선 JPA를 사용하기 위해서 예제를 만들어 보겠다.

JPA란 한줄 요약하자면, DB와 JAVA가 서로 잘 어울릴수 있도록 매핑하는 작업을 해주는 녀석이다.

그렇다면, 레거시에서 VO 형태에서 이런식으로 데이터 바인딩을 하는 것은 모두에게 익숙할 것이다.

 

String id;

String username;

 

//getter ,setter

 

//to string

 

하지만, 이와 같이 데이터 바인딩을 하여 DAO 단에서 mybatis를 통해 sql매핑을 해주던 방식이 

한단계 발전한것이 JPA 라고 생각을 하고 있다.  내가 이해한 대로는 그런거 같다.

 

그렇다면, 간단하게 예제를 좀 챙겨서 보면서 맛을 보자. JPA 란 녀석에 대해서.

 

 

 

여기 아주 간단한 Member라는 DB 테이블이 있다. 

 

# 회원 테이블 #

CREATE TABLE MEMBER {

 ID VARCHAR(255) NOT NULL,

 NAME VARCHAR(255),

 AGE INTEGER,

 PRIMARY KEY (ID)

}

다음 테이블과 아래의 클래스간의 매핑을 해보자.

 

아 물론, Annotation들은 JPA에서 생긴 요 4개의 어노테이션을 기능별로 정리해 두자.

 

@Entity 테이블과 클래스간의 매핑을 하겠다는 어노테이션

@Table 테이블 정보를 알려준다 

@Id 기본키에 매핑한다.

@Column 필드를 컬럼에 매핑한다. 

@매핑정보가 없는 필드 생략하면 필드명을 사용해서 컬럼명으로 자동 매핑된다.

 

package com.jojoldu.webservice.domain.member;

import javax.persistence.*;


@Entity
@Table(name="MEMBER")
public class Member {

    @Id
    @Column( name= "ID" )
    private String id;
    
    @Column(name = "NAME")
    
    private String username;
    private Integer age;

    }

 

 

이제 매핑도 했으니, 뭔가 눈으로 봐야되지 않겠는가? 

h2 console에 table을 생성하고 데이터를 입력해보고싶다.

다음시간에 해보자. 

하루에 30분이상 공부하긴 힘들다. 나도 쉬어야되