데브허브 | DEVHUB | [스프링 부트 기초 강의] 3강. 3.3 MyBatis[스프링 부트 기초 강의] 3강. 3.3 MyBatis
- MyBatis는 자바 객체와 데이터베이스 테이블 간의 데이터 연동을 돕는 프레임워크로, 자바 메서드를 SQL 쿼리에 매핑하고 그 결과를 다시 자바 객체로 변환합니다. 🔄
- SQL 쿼리를 자바 인터페이스 메서드에 매핑하는 두 가지 주요 방식을 제공합니다: 복잡한 SQL에 유리한 XML 기반 매핑과 간단한 SQL에 편리한 애노테이션 기반 매핑입니다. 📄📝
- 프로젝트 설정 시 Spring Initializr를 통해 MyBatis, H2 데이터베이스, Lombok 의존성을 추가하며, Spring Boot와 MyBatis 버전 호환성을 고려해야 합니다. 🛠️
- 내장형 H2 데이터베이스는 애플리케이션 시작 시
resources/schema.sql로 스키마를 생성하고 resources/data.sql로 초기 데이터를 삽입하여 구성할 수 있습니다. 🚀
- 데이터베이스 연동을 위한 자바 인터페이스(예:
MemberMapper)를 정의하고, @Mapper 애노테이션을 붙여 스프링 빈으로 등록합니다. 🧩
- 자바 메서드에서 SQL 쿼리로 파라미터를 전달할 때는
@Param 애노테이션을 사용하고, SQL에서는 #{파라미터이름} 형식으로 값을 참조합니다. ➡️
- 데이터베이스 컬럼 이름(예:
member_id)과 자바 객체 프로퍼티 이름(예: memberId)이 다를 경우, MyBatis의 기본 매핑이 실패할 수 있으며, 이를 해결하기 위한 명시적 매핑이 필요합니다. ⚠️
@Autowired를 통해 매퍼 인터페이스의 구현체를 주입받아 애플리케이션 로직에서 데이터베이스 연동 기능을 활용합니다. 💉