[Spring] JPA(작성중)

5859 단어 SpringSpring

ORM(Object Relational Mapping)

  • 객체가 DB 테이블이 되도록 만들어준다.
  • SQL을 작성하지 않아도 데이터를 조작할 수 있음.

JPA?

  • Java Persistence API
  • 개발자가 직접 SQL작성하지 않음. JPA API를 기반으로 DB 저장, 관리
  • 자바 ORM 기술에 대한 표준 명세(자바에서는 관계형DB를 어떻게 사용하는가)
  • ORM 프레임워크(Hibernate, EclipseLink 등)을 활용해야 함.
  • ORM이기 때문에 자바 클래스와 DB테이블 맵핑(SQL을 맵핑하지 않음)

JPA 사용목적

  • 개발 시에 객체지향의 장점을 잊고 단순히 객체를 데이터 전달 목적으로 사용하게 됨.(현재 나도 그런 것 같다ㅜ) 신규 컬럼 하나만 추가하더라도 계속 반복작업 진행됨.
  • DB중심 설계의 단점을 개선하자! -> 객체와 테이블을 맵핑시키는 ORM사용. -> 자바에서는 JPA

JPA 사용해보기

1. dependency 추가

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>

2. Entity 클래스 생성

@Data
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Entity(name = "member")
public class MemberVO{
	@Id
    @GenerateValue(strategy = GenerationType.IDENTITY)
    private Long mbrNo;
    
    private String id;
    
    private String name;
    
    @Builder
    public MemberVo(String id, String name){
    	this.id = id;
        this.name = name;
    }
}
  • @Entity가 붙은 클래스는 JPA가 관리. 맵핑 테이블은 해당 어노테이션을 붙임.

..

좋은 웹페이지 즐겨찾기