Jpa-도입
JPA란?
- JPA가 없었다면?
- CRUD SQL을 반복적으로 해야한다.
- JDBC API를 사용
- Mybatis사용 - sql매퍼
- JPA 장점
- 객체 모델링과 관계형 데이터베이스 사이의 패러다임 불일치 문제 해결
- 객체매핑으로 알아서 sql을 짜서 데이터베이스에 보내 테이블을 만든다. → 엄청나다.
- JPA는 실행 시점에서 자동으로 SQL을 만들어서 실행시킨다.
- 따라서 개발자는 SQL을 직접 작성하는게 아니라 어떤 SQL이 실행될지만 고려하면 된다.
- 코드줄고 생산성과 유지보수가 좋아진다. + 테스트작성도 간편하다.
- DB변경할 때 쉽다. mysql → oracle (벤더 독립성)
- 라이브러리나 프레임워크, 자료가 매우 풍부하다.
JPA 어플리케이션 개발
- persistence.xml의 설정 정보를 사용해서 엔티티 매니저 팩토리를 만든다.
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");
- 공장생성은 비용이 크므로 애플리케이션 전체에서 딱 한 번만 생성하고 사용해야한다.
- 공장을 통해서 엔티티 매니저를 생성한다.
EntityManager em = emf.createEntityManager();
- jpa 대부분의 기능은 이 매니저가 제공한다.
- em을 통해 엔티티를 데이터베이스에 등록/수정/삭제/조회할 수 있다.
- 매니저로부터 트랜젝션을 가져와 관리한다.
EntityTransaction tx = em.getTransaction(); try{ tx.begin(); logic(em); tx.commit(); } catch(Exception e) { tx.rollback(); }
댓글남기기