JPA를 사용하는 이유
JPA ( Java Persistence API )
- 자바 영속성 API
- 자바 진영의 ORM 기술 표준 (Object-Relational Mapping)
- ORM 프레임워크는 객체와 관계형 데이터베이스를 매핑한다.
- ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임(틀,체계)의 불일치 문제를 개발자 대신 해결해준다.
- ORM 프레임워크 : 하이버네이트 프레임워크가 가장 대중적이다.
- 하이버네이트를 사용하기 위해 필요한 lib => Maven jar.(dependency 추가)
- SQL에 의존적인 개발
- 회원 객체를 관리하는 MemberDAO(DAO : Data Access Object,데이터 접근 계층) 완성하고 기능 개발 완료.
- 갑자기 회원의 연락처도 함께 저장해달라는 요구사항이 들어옴.
- 회원 테이블에 TEL 컬럼 추가. 회원 객체에 TEL 필드 추가.
- 연락처 저장을 위한 INSERT SQL 수정.
- 회원 조회를 위한 SELECT SQL 수정.
- 연락처 수정을 위한 UPDATE SQL 수정.
- JPA 문제 해결
- jpa.persist(member); // 저장.
- Member member = jpa.find(Member.class, memberId); // 조회.
- member.setName(“이름변경”); // 수정.
SQL에 의존적인 개발 ==> JPA 사용 => 개발자가 직접 SQL을 작성하는 것이 아니라 JPA가 제공하는 API를 사용하면 된다.
JPA를 사용해야 하는 이유
- 개발자가 직접 SQL을 작성하는 것이 아니라
JPA가 제공하는 API를 사용
하면 된다. => JPA에 객체만 전달하면 되므로 SQL작성하고 JDBC API를 사용하는 반복적인 일을 JPA가 대신 처리해서 생산성이 높아짐. - 필드가 추가되거나 삭제되어도 JPA가 대신 처리하므로 수정해야 할 코드가 SQL를 직접 다룰때보다 줄어듬.
-
패러다임의 불일치 문제를 해결해준다.
- JPA는 특정 DB에 종속적이지 않지만 각 DB가 제공하는 함수는 약간씩 차이가 있다
(데이터 타입 : MySQL(VARCHAR), 오라클(VARCHAR2) )
JPA는
방언 클래스를 제공
하므로 DB가 변경되더라도 DB 방언만 교체해주면 된다.