[Java] 자바 퍼시스턴스 프레임워크 ( Java Persistence Framework )
by coco3oPersistence란?
- 프로그램이 종료되더라도 사라지지 않는 데이터의 특성 (영속성)
=> 어플리케이션을 종료하고 다시 실행하더라도 이전에 저장한 데이터를 다시 불러올 수 있는 기술이다.
- persistence layer : 데이터에 영속성을 부여해주는 계층 (보통 DB에 접근하는 역할)
=> JDBC로 직접 구현할 수 있지만, 보통 persistence framework를 사용하여 개발한다.
Persistence Framework
- 데이터베이스와의 연동되는 시스템을 빠르게 개발하고 안정적인 구동을 보장해주는 프레임워크
종류
1. SQL Mapper : SQL문장으로 직접 데이터베이스 데이터를 다루는 SQL Helper ( Mybatis )
2. ORM : 객체를 통해 간접적으로 데이터베이스를 다루는 ORM ( Hibernate, JPA )
1. ORM(Object Relational Mapping)
DB 데이터 <ㅡ 매핑 ㅡ> 객체(Object)
- 객체와 DB의 데이터를 직접 매핑해주는 것을 말한다.
=> SQL Query가 아니라 직관적인 코드(메소드)로서 데이터를 조작할 수 있다.
=> 객체간의 관계로 SQL을 자동 생성한다.
- ex) JPA, Hibernate
- JPA(Java Persistent API)
- 자바 ORM 기술에 대한 API 표준 명세
=> ORM을 사용하기 위한 인터페이스를 모아둔 것
- 구현체를 선택하여 사용할 수 있다.
=> Hibernate, EclipseLink 등의 ORM 프레임워크
2. SQL Mapper
SQL <ㅡ 매핑 ㅡ> 객체(Object)
- SQL Query문을 통해 데이터를 조작한다.
=> 즉, 직접 Query문을 작성해야 한다.
- ex) MyBatis, JDBC Templetes
- JDBC(Java Database Connectivity)
- DB에 접근할 수 있도록 Java에서 제공하는 API
=> 모든 Persistence Framework에는 내부적으로 JDBC API를 사용한다.
- MyBatis
- 개발자가 지정한 SQL, 고급 매핑을 지원하는 SQL Mapper
- JDBC로 처리하는 상당부분의 코드와 파라미터 설정, 결과 매핑을 지원해준다.
=> 기존 JDBC를 사용할 때 DB 관련 여러 설정(Connection 생성, Statement 생성 및 쿼리 수행, 결과값(ResultSet) 처리)을
다루어야 했으나, 자바 객체를 실제 SQL 쿼리문에 연결함으로써 빠른 개발과 편리한 테스트를 할 수 있다.
- xml과 Annotation을 사용하여 primitive타입과 Map 인터페이스, 자바 POJO 객체를 설정하여 DB record에 사용할 수 있다.
'🌈Programming > Java' 카테고리의 다른 글
[Java] toString() 과 String.valueOf() 비교 및 차이점 (0) | 2021.09.02 |
---|---|
[Java] StringTokenizer 문자열 분리하기 (split과 차이는 뭘까?) (0) | 2021.08.10 |
[Java] IO와 NIO의 차이점? / IO와 NIO의 선택 (0) | 2021.05.18 |
[Java] JavaFX란? / AWT란? / Swing이란? (0) | 2021.05.15 |
[Java] 스트림(Stream) (0) | 2021.05.13 |
블로그의 정보
슬기로운 개발생활
coco3o