JAVA Persistence API
JPA 를 쓰기전
개발자가 수 많은 객체들을 DB에 저장할때 SQL을 직접 작성 후 JDBC API를 사용해서 실행해야 했다.
결국 수많은 CRUD 동작을 위한 SQL문을 무한반복 작성해서 지루하고 많은 시간을 낭비하게 됨.
그리고 객체 필드 하나 생성하는 순간 자바소스와 각각의 SQL에 모두 수정해야 줘야한다.
즉 SQL에 의존적인 개발과 데이터 중심의 설계를 위주로 하였다.
JPA 를 사용시
개발자가 직접 JDBC API를 사용하지 않아도 되고 JDBC의 개발 해야하는 반복코드가 확 줄어든다.
SQL도 JPA가 제공해 주는 API를 사용하면 직접 만들어서 처리해준다.
데이터가 중심이 아닌 객체 중심의 설계로 패러다임 전환이 가능하다
즉 개발 생산성이 대폭 증가한다.
Persistence Framwork
Application 과 DB를 연결해주는 프레임 워크이다.
SQL mapper, ORM 두가지의 종류가 있다.
SQL mapper
객체의 필드를 SQL로 매핑(변환)하여 데이터를 객체화 한다.
SQL을 직접 짜야한다. 그리고 DBMS에 따라 문법이 다르므로 DBMS에 종속적이다.
SQL mapper 종류는 Spring JDBC, mybatis 가 있다.
ORM (Object - relational mapping)
객체는 객체대로 설계하고 DB는 DB대로 설계한다.
ORM 프레임워크가 중간에서 매핑해준다.
객체간의 관계를 바탕으로 SQL을 자동 생성 후 메서드로 조작한다.
여기서 JPA 는 JAVA ORM 표준이다.
JPA
자바 앱이 JPA에게 명령을 하면 JPA가 JDBC를 사용하여 SQL을 만들어서 보내고 결과를 반환 하는 방식
JPA의 간단한 CRUD
ㅁ 저장 : jpa.persist(member); // JPA가 객체와 매핑정보를 보고 INSERT SQL 생성
ㅁ 조회 : Member member = jpa.find(memberID); // JPA가 객체와 매핑정보를 보고 SELECT SQL 생성
ㅁ 수정 : member.setName("변경할 이름"); // JPA가 객체와 매핑정보를 보고 UPDATE SQL 생성
ㅁ 삭제: jpa.remove(member); // JPA가 객체와 매핑정보를 보고 DELETE SQL 생성
'웹' 카테고리의 다른 글
중학생의 웹사이트 만들기 (0) | 2022.01.05 |
---|