Jpa-도입

최대 1 분 소요

JPA란?

  • JPA가 없었다면?
    • CRUD SQL을 반복적으로 해야한다.
    • JDBC API를 사용
    • Mybatis사용 - sql매퍼
  • JPA 장점
    • 객체 모델링과 관계형 데이터베이스 사이의 패러다임 불일치 문제 해결
    • 객체매핑으로 알아서 sql을 짜서 데이터베이스에 보내 테이블을 만든다. → 엄청나다.
    • JPA는 실행 시점에서 자동으로 SQL을 만들어서 실행시킨다.
    • 따라서 개발자는 SQL을 직접 작성하는게 아니라 어떤 SQL이 실행될지만 고려하면 된다.
    • 코드줄고 생산성과 유지보수가 좋아진다. + 테스트작성도 간편하다.
    • DB변경할 때 쉽다. mysql → oracle (벤더 독립성)
    • 라이브러리나 프레임워크, 자료가 매우 풍부하다.

JPA 어플리케이션 개발

  1. persistence.xml의 설정 정보를 사용해서 엔티티 매니저 팩토리를 만든다.
     EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");
    
    • 공장생성은 비용이 크므로 애플리케이션 전체에서 딱 한 번만 생성하고 사용해야한다.
  2. 공장을 통해서 엔티티 매니저를 생성한다.
     EntityManager em = emf.createEntityManager();
    
    • jpa 대부분의 기능은 이 매니저가 제공한다.
    • em을 통해 엔티티를 데이터베이스에 등록/수정/삭제/조회할 수 있다.
  3. 매니저로부터 트랜젝션을 가져와 관리한다.
     EntityTransaction tx = em.getTransaction();
        
     try{
       tx.begin();
       logic(em);
       tx.commit();
     } catch(Exception e) {
       tx.rollback();
     }
    

카테고리:

업데이트:

댓글남기기