Mybatis
- SQL Mapper 기술 제공
- JDBC 프로그래밍을 단순화하여, 불필요한 Boilerplate 코드 제거하고, Java 소스 코드에서 SQL 문을 분리하여 별도의 XML 저장하고, 이 둘을 서로 연결시켜주는 기능 제공
Mybatis 특징
- MyBatis 내부에서 Boilerplate 코드가 구현되어 있으며, Java메소드와 SQL간 매핑을 해줌
- SQL문을 Java 코드에서 분리하여 관리가 편함(분리된 SQL문을 MyBatis가 찾아서 실행)
- 동적인 SQL 생성 기능을 제공하여 파라미터에 따라 다른 SQL문 동적 생성 가능
MyBatis 장단점
- 장점 : SQL직접 제어, 학습 용이성
- 단점 : CRUD 단순 작업에 반복 수작업 필요, 데이터베이스에 종속적
JPA
- ORM 기술 제공(개발자가 객체 지향 프로그래밍 언어에서 사용하는 객체 모델과 관계형 데이터베이스 테이블 간의 매핑으로 자동으로 처리)
- Java 객체와 관계형 데이터베이스 간의 매핑을 위한 API
- Java 개발자가 객체지향 관점에서 개발할 수 있도록 하여 DB와 Java간의 불일치 해소
JPA 특징
- MyBatis와 다르게 SQL 문의 작성이 불필요하며 ORM 내부적으로 java메소드에 적합한 SQL문이 자동으로 생성되어 실행
- 개발자는 클래스만 만들어서 사용하며, ORM프레임워크(대표적으로 hiberate)가 자동으로 관련된 SQL생성
JPA 장단점
- 장점 : 표준화된 인터페이스(JPA 표준을 따름), 자동 매핑으로 개발 및 유지보수성 향상, 객체 지향적인 접근(테이블 간의 연관관계와 객체간 연관 관계 쉽게 다룰 수 있음), DBMS에 독립적
- 단점 : 높은 학습곡선, 복잡한 SQL생성 어려움
'SpringBoot' 카테고리의 다른 글
[Error] Cannot read properties of undefined (reading 'maps') (0) | 2025.01.15 |
---|---|
[Spring Framework] 동작 과정 (0) | 2024.11.24 |
[의존성] 추가 라이브러리 선택 (0) | 2024.11.19 |
[Spring] DI (Dependency Injection)가 필요한 이유 (2) | 2024.11.15 |
[IntelliJ] Spring Boot 프로젝트 생성하기 (0) | 2024.11.14 |