Persistence(영속성)
: 데이터를 생성한 프로그램이 종료되더라도 사라자지 않는 데이터의 특성
SQL Mapper, ORM은 Persistence Framework이다.
SQL Mapper는 쿼리 수행 결과와 객체의 필드를 매핑하고
ORM은 객체와 관계형 DB를 매핑한다.
Java는 객체지향 언어 이고, DataBase는 관계지향 적이다.
ORM(Object Relational Mapping)은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다.
- 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정 및 결과 매핑을 대신해준다.
마이바티스는 자바에서 SQL Mapper를 지원해주는 FrameWork이다.
JPA(ORM) | MyBatis(SQL Mapper) | |
장점 | - RDB종류와 관계없이 사용 가능하다 (DB 변경 용이) - 기본적인 CRUD 및 페이징 처리 쿼리등이 구현 되어 있어 비지니스 로직에 집중 할 수 있다 - 테이블 생성, 변경 등 엔티티 관리 편함 |
- JPA에 비해 쉽다 - 직접 쿼리를 작성하기 때문에 Join, 튜닝 등을 수월하게 할 수 있다 - 동적 쿼리 사용 시 JPA보다 간편 |
단점 | - 진입장벽이 있다(어려움) 연관관계, 임베디드 등 이해할게 많다 - 쿼리 튜닝을 해야 할 경우 다소 불편하다 |
- 데이터베이스 변경시 전체적으로 수정 (Oracle -> MySQL) - 초기에 Mapper작성부터 많은 설계와 로직이 필요 - 특정 DB에 종속적 |
Intellij 단축키 (0) | 2021.04.06 |
---|---|
Spring boot (0) | 2021.04.06 |
도메인 관련 (0) | 2021.04.01 |
블록체인(BlockChain) (0) | 2021.03.14 |
기술(JAVA) (0) | 2021.03.07 |