Mybatis/MyBatis 소개 및 환경 설정
MyBatis란 무엇인가?
DEVLIB
2025. 4. 16. 16:38
728x90
MyBatis란 무엇인가?
개념 정의
MyBatis는 자바 애플리케이션에서 SQL을 직접 작성하면서도, 객체 지향적으로 데이터베이스와 연동할 수 있도록 도와주는 **퍼시스턴스 프레임워크(Persistence Framework)**입니다.
즉, JDBC보다 더 편하고, JPA보다 더 직관적인 SQL 중심의 데이터 액세스 프레임워크라고 볼 수 있습니다.
주요 특징
특징 |
설명 |
SQL을 직접 제어 | 개발자가 SQL을 직접 작성하므로, 쿼리 최적화나 복잡한 SQL 작성이 용이합니다. |
Mapper 기반 구조 | XML 또는 어노테이션 기반의 Mapper 인터페이스를 통해 SQL을 매핑합니다. |
ORM 아님 | JPA나 Hibernate처럼 완전한 ORM은 아니지만, 객체 매핑 기능은 일부 제공합니다. |
경량 프레임워크 | 설정이 간단하고, 필요한 기능만 최소한으로 제공합니다. |
Spring과 잘 통합됨 | Spring Boot와 쉽게 연동할 수 있으며, 설정이 간편합니다. |
MyBatis가 필요한 이유
JDBC의 문제점
- 매번 Connection, PreparedStatement, ResultSet을 직접 작성해야 함
- 코드 반복이 많고 가독성이 떨어짐
- SQL과 자바 코드가 혼합되어 유지보수 어려움
MyBatis의 장점
- SQL을 외부 파일(XML) 또는 어노테이션으로 분리해 관리
- 객체 자동 매핑 (resultType, resultMap)
- 재사용 가능한 SQL 블록(sql 태그) 지원
- 깔끔한 구조로 유지보수 편리
간단 예제
Mapper XML 예시:
<select id="selectUser" resultType="User">
SELECT * FROM users WHERE id = #{id}
</select>
Java 인터페이스:
public interface UserMapper {
User selectUser(int id);
}
사용 예시:
User user = userMapper.selectUser(1);
언제 사용하면 좋을까?
- SQL 튜닝이 중요한 대규모 시스템
- 복잡한 쿼리가 많고 SQL을 직접 관리하고 싶을 때
- JPA의 자동 쿼리 생성 방식이 불편하거나 느릴 때
LIST