JPA

홍성우·2023년 2월 6일
0

JPA에 대한 학습을 정리해 보려고 한다.
기존에는 Mybatis 프레임워크를 이용하여 프로젝트를 구현하였지만
이번에는 ORM을 지원하는 JPA 인테페이스를 학습해보려고한다.
대표적인 프레임 워크로 hibernate가 있다.

특징
영속성 : 영속성은 사전적인 의미로 영원히 계속되는 성질이나 능력을 의미한다.
물리적인 저장소(하드 디스크)에 저장하는 행위를 영속화라 표현한다.
자바에서는 SQL을 통해 RDBMS에 데이터를 저장하는 행위를 영속화라 표현하기도 한다.
객체지향 애플리케이션에서는 객체를 특정 저장소에 저장하는 행위를 영속화라 부른다.

영속성 이해
자바에서는 다양한 방법으로 객체를 RDBMS에 영속화 할수 있는데
TopLink,hibernate 프레임워크를 사용할수 있다.
또는 Enterprise JAVA Bean의 entity bean을 사용해서 객체를 RDBMS로 영속화 할수 있다.
자바에서는 객체를 RDBMS에 영속화 할때 OR맵핑 또는 SQL 매핑을 사용한다.

OR 매핑은 JPA 방법 이고, SQL 매핑은 Mybatis 방법이다.

먼저 영속성을 이해하기 전 jdbc를 이해해야한다.

JDBC란 자바와 데이터베이스를 연결시켜주는 인터페이스 이다.
프로그래머가 해당 DB와 연결하기 위해 JDBC구현 해야 한다.

내가 작성한 어플리케이션의 데이터를 저장하기 위해 Oracle vender(제조사)를 사용한다고 하자
Oracle DB와 어플리케이션을 연결하기 위해 JDBC 인터페이스를 이용할것이고,
이용하려면 필요한것이 Driver 클래스이다.
다행히 Oracle,mysql,postgresql,maridb 등 각 vender 마다 driver 클래스를 구현해 놓았다.
프로그래머 입장에서는 해당 Driver 클래스를 연결시키면 된다.

만약 JDBC 인터페이스를 사용하지 않으면 Vender별 DB Driver을 연결해야한다.

[객체 , 테이블]
자바에서는 객체단위로 데이터를 관리하고 RDBMS에서는 테이블 구조로 데이터를 관리하기 때문에 서로 데이터 구조가 맞지 않는다.

이를 패러다임 일치하지 않는다고 말하여 서로 맞추는 과정이 필요하다.

객체와 테이블의 패러다임을 맞추는 방법은
SQL 매핑 방법 (MyBatis), OR 매핑(JPA) 방법이 있다.

먼저 MyBatis방법은 자바소스와 sql문을 분리하고, sql문을 이용하여 영속화 하는 방법입니다.

OR 매핑은 JPA 인터페이스를 활용한다. 가장 큰 특징은 객체를 DB에 영속화 하는 과정에서 SQL문을 사용하지 않고 저장할수 있다는 점이다.
JPA의 대표적인 hibernate를 프레임워크안에는 내부적으로 Entity Manager가 존재한다.

Entity Manager 역할은 sql 매핑을 지원하고,프로그래머 입장에서는 sql문을 작성하지 않아고 db에 영속화 할수 있다.

과정은
자바소스 객체 --> hibernate -> Entity Manger -> jdbc -> DB

profile
제 블로그를 방문해 주셔서 감사합니다

0개의 댓글