Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

지우쓰 개발일기

[JPA] CRUD 기본 본문

Spring Boot/JPA

[JPA] CRUD 기본

jiwoo-kimm 2020. 9. 9. 00:46

본 포스팅은 자바 ORM 표준 JPA 프로그래밍 (김영한 저)을 읽고 정리한 내용입니다.

 

자바 ORM 표준 JPA 프로그래밍

에이콘 오픈 소스 프로그래밍 시리즈. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다룬다.

www.aladin.co.kr


1. Entity Manager 설정

EntityManagerFactory
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");
  • persistence.xml의 persistence unit에서 jpabook을 찾아 EMF를 생성

  • JPA 동작 기반 객체와 DB 커넥션 풀 생성

  • 어플리케이션 전체에서 딱 한 번만 생성하고 공유해서 사용

EntityManager
EntityManager em = emf.createEntityManager();
  • DB 커넥션을 유지하며 DB와 통신

  • 가상의 DB로 생각하면 됨

종료
em.close();
emf.close();
  • 사용이 끝난 EM, EMF는 모두 반드시 종료해야 한다.

 

2. Transaction 관리

EntityTransaction tx = em.getTransaction();
try {	
    
    tx.begin();
    logic(em);	// Execute business logic
    tx.commit();
    
} catch (Exception e) {
	tx.rollback();
}
  • JPA의 데이터 변경은 Transaction 내에서 실행
  • EM에서 Transaction API를 호출하여 실행

 

3. Business Logic

CREATE
Member member = Member.builder()
    .id("id1")
    .userName("이름")
    .age(23)
    .build();
    
em.persist(member);
READ
Member findMember = em.find(Member.class, id);
  • 한 건 조회만 가능
UPDATE
member.setAge(21);
  • Entity(클래스)의 값만 변경해도 JPA가 자동으로 추적하여 DB 값을 변경
DELETE
em.remove(member);
  • member 객체의 id를 사용하여 SQL 자동 생성

'Spring Boot > JPA' 카테고리의 다른 글

[JPA] Persistence Context  (0) 2020.09.09
[JPA] JPQL 개요  (0) 2020.09.09
[JPA] persistence.xml 기본 설정  (0) 2020.09.08
[JPA] 매핑 정보 Annotation  (0) 2020.09.08
[JPA] JPA란 무엇인가?  (0) 2020.09.08
Comments