[LG U+ 유레카 3기] MyBatis ch01 | XML 기반 매핑 실습
2025. 10. 17. 15:19ㆍJava/Mybatis

❶ 상황 설명
MyBatis 첫 번째 실습(ch01)은 JDBC와 MyBatis의 차이를 이해하고, 단순한 Book 테이블 조회 기능을 MyBatis를 통해 수행하는 예제였다.
직접 JDBC 코드를 작성하던 방식 대신, MyBatis의 SqlSession과 Mapper를 이용하여 SQL을 XML로 분리하고, 실행 흐름을 단순화하는 것이 목표였다.
❷ 코드 및 실행 흐름
package ch01;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
public class MyApp {
public static void main(String[] args) throws Exception {
// 1️⃣ MyBatis 설정 파일(mybatis-config.xml) 읽기
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
// 2️⃣ SqlSession 생성
try (SqlSession session = factory.openSession()) {
// 3️⃣ Mapper 인터페이스 연결
BookMapper mapper = session.getMapper(BookMapper.class);
// 4️⃣ SQL 실행
List<Book> books = mapper.getBooks();
// 5️⃣ 결과 출력
for (Book b : books) {
System.out.println(b.getTitle() + " / " + b.getPrice());
}
}
}
}
실행 흐름 요약 👇
| 단계 | 내용 |
|---|---|
| 1 | MyBatis 설정파일(mybatis-config.xml) 로드 |
| 2 | SqlSessionFactory 생성 후 세션 오픈 |
| 3 | Mapper 인터페이스와 XML 매핑 연결 |
| 4 | SQL 실행 → 결과를 List<Book>로 반환 |
| 5 | 조회 결과 출력 |
❸ 결과
[실행 결과 예시]
자바의 정석 / 25000
이것이 MySQL이다 / 28000
스프링 입문 / 32000
JDBC에서는 Connection, Statement, ResultSet을 직접 다뤄야 하지만, MyBatis에서는 매퍼(XML)만 작성하면 자동으로 매핑되어 훨씬 간결하다.
❹ 개념 정리
- SqlSessionFactory : SqlSession을 생성하는 MyBatis의 핵심 팩토리 객체
- SqlSession : DB와 직접 연결되어 SQL을 실행하는 객체
- Mapper : 인터페이스와 XML 매퍼 파일을 연결하는 MyBatis의 추상화 레이어
- mybatis-config.xml : 환경 설정, DB 연결, 매퍼 등록 등 전반 설정 담당
- JDBC vs MyBatis : JDBC는 SQL과 자바 코드가 뒤섞이지만, MyBatis는 XML 분리로 유지보수가 쉬움
❺ 핵심 요약
✅ MyBatis 기본 구조는 SqlSessionFactory → SqlSession → Mapper → SQL 실행 순서로 작동한다.
✅ SQL을 XML로 분리하여 가독성과 유지보수성을 높인다.
✅ ch01의 핵심 목표는 “MyBatis의 기본 실행 흐름”을 이해하는 것이다.
'Java > Mybatis' 카테고리의 다른 글
| Spring MVC + MyBatis 실습 (0) | 2025.11.06 |
|---|---|
| [LG U+ 유레카 3기] MyBatis 실습 준비 | Maven 환경 세팅 정리 (0) | 2025.10.17 |
| [LG U+ 유레카 3기] MyBatis ch03 실습 | SqlSessionFactory 직접 구성하기 (0) | 2025.10.17 |
| [LG U+ 유레카 3기] MyBatis ch02 |어노테이션 매핑 실습 (0) | 2025.10.17 |