본문 바로가기
GD's IT Lectures : 기초부터 시리즈/마이바티스(MyBatis) 기초부터 ~

[마이바티스(MyBatis)] 마이바티스(MyBatis) 란?

by GDNGY 2023. 5. 15.

마이바티스(MyBatis) 란?

MyBatis는 Java 언어를 위한 오픈 소스 SQL 매퍼 프레임워크입니다. SQL 매퍼는 개발자가 SQL 쿼리문을 작성하면서 동시에 해당 쿼리문의 결과를 자바 객체와 매핑하게 해주는 도구입니다. 이를 통해 개발자는 SQL 쿼리문을 직접 사용하면서도 객체 지향적인 코드를 작성할 수 있습니다.

MyBatis는 JDBC 코드의 상당 부분과 파라미터 설정 및 결과 매핑을 처리해 줍니다. MyBatis는 복잡한 SQL 쿼리문과 프로시저를 지원하며, 동적 SQL을 다루는 데 유용합니다. 또한, MyBatis는 XML 및 어노테이션을 사용하여 SQL을 분리하고 관리할 수 있도록 지원합니다.

이 프레임워크는 개발자가 데이터베이스와 상호작용하는 방법을 세세하게 제어할 수 있도록 해주기 때문에, 개발자가 직면하는 문제에 대한 세밀한 제어를 가능하게 합니다. 이와 같은 이유로 MyBatis는 복잡한 SQL 쿼리문이 필요한 상황에서 많이 사용됩니다.

Chapter별 간략설명

1. 마이바티스 소개

이 섹션에서는 MyBatis 프레임워크, 그 주요 기능들(객체 매핑, 프로시저 호출 등) 및 실제 사용 사례에 대해 소개합니다.

 

2. 환경 설정

이 부분에서는 개발 환경 설정, Java 버전 및 IDE 선택, Maven 또는 Gradle 등의 의존성 관리 도구 설정, mybatis-config.xml 설정 등에 대해 알아봅니다.

 

3. SQL 매핑 파일 작성

이 섹션에서는 SQL 매핑 파일, 즉 MyBatis의 매퍼 파일을 작성하는 방법에 대해 배웁니다. 이를 통해 SQL 쿼리를 XML 파일로 분리하여 관리하는 방법을 배울 수 있습니다.

 

4. 동적 SQL

이 섹션에서는 동적 SQL의 필요성과 기본 구조, 그리고 if, choose, foreach 등의 MyBatis의 동적 SQL 태그를 이용하는 방법에 대해 배웁니다.

 

5. 데이터베이스 연결 및 세션 생성

이 섹션에서는 데이터베이스에 연결하고, 세션을 생성하는 방법을 배웁니다. MySQL, Oracle, PostgreSQL 등 다양한 데이터베이스의 연결 정보 설정 방법, SqlSessionFactory와 SqlSession의 사용 방법 등을 다룹니다.

 

6. DAO (Data Access Object) 작성

이 섹션에서는 MyBatis를 이용하여 DAO를 작성하는 방법에 대해 배웁니다. 인터페이스 기반 DAO, XML 매퍼를 사용한 DAO, 어노테이션 기반 DAO 등 다양한 방법을 통해 데이터베이스와의 상호작용을 관리하는 방법을 배울 수 있습니다.

 

7. 트랜잭션 관리

이 섹션에서는 트랜잭션의 개념과 중요성, ACID 속성, 트랜잭션 경계 설정, 롤백 및 커밋 처리 등 트랜잭션 관리에 대해 배웁니다.

 

8. 마이바티스와 스프링 연동

이 섹션에서는 마이바티스를 스프링 프레임워크와 연동하는 방법에 대해 배웁니다. 이를 통해 스프링의 DI(Dependency Injection)와 AOP(Aspect-Oriented Programming), 그리고 트랜잭션 관리 기능 등을 활용할 수 있습니다.

 

9. 실습 및 예제

이 섹션에서는 MyBatis를 실제로 사용하는 다양한 예제와 실습을 통해 학습을 깊게 합니다. CRUD 연산을 기반으로 하는 예제, 회원 관리 시스템 실습, 웹 애플리케이션과의 연동, 동적 SQL 실습, 페이징 처리 실습, 배치 작업 실습 등 다양한 실습을 통해 MyBatis의 고급 기능을 배울 수 있습니다.

 

10. 마무리

이 마지막 섹션에서는 MyBatis를 사용할 때 주의해야 할 사항(N+1 문제, 커넥션 누수 등), 성능 최적화 방법(캐싱, 쿼리 최적화 등), 그리고 추가 참고 자료에 대해 다룹니다. 이를 통해 MyBatis를 효과적으로 사용하는 방법을 마스터할 수 있습니다.

 

 

반응형

 


<목차>

1. 마이바티스 소개

  1.1. 마이바티스 개요

  1.2. 주요 기능

    1.2.1. 객체 매핑

    1.2.2. 프로시저 호출

  1.3. 사용 사례

 

2. 환경 설정

  2.1. Java 버전 및 IDE 선택

  2.2. 의존성 관리 도구 설정

    2.2.1. Maven 설정

    2.2.2. Gradle 설정

  2.3. mybatis-config.xml 설정

    2.3.1. 기본 설정

    2.3.2. 데이터 소스 설정

    2.3.3. 매핑 파일 연결

 

3.SQL 매핑 파일 작성

  3.1. 매퍼 파일 구조

    3.1.1. namespace 설명

    3.1.2. resultMap 설명

    3.1.3. parameterType 설명

  3.2. 쿼리 작성 방법

    3.2.1. SELECT 쿼리 예제

    3.2.2. INSERT 쿼리 예제

    3.2.3. UPDATE 쿼리 예제

    3.2.4. DELETE 쿼리 예제

 

4. 동적 SQL

  4.1. 동적 SQL의 필요성

  4.2. 동적 SQL 기본 구조

  4.3. 동적 SQL 활용 예제

    4.3.1. if 사용법

    4.3.2. choose 사용법

    4.3.3. foreach 사용법

 

5. 데이터베이스 연결 및 세션 생성

  5.1. 드라이버 및 연결 정보 설정

    5.1.1. MySQL 연결 정보

    5.1.2. Oracle 연결 정보

    5.1.3. PostgreSQL 연결 정보

  5.2. SqlSessionFactory 생성

  5.3. SqlSession 사용

 

6.DAO (Data Access Object) 작성

  6.1. 인터페이스 기반 DAO

  6.2. XML 매퍼를 사용한 DAO

  6.3. 어노테이션 기반 DAO

    6.3.1. @Select 사용법

    6.3.2. @Insert 사용법

    6.3.3. @Update 사용법

    6.3.4. @Delete 사용법

 

7. 트랜잭션 관리

  7.1. 트랜잭션 개념 설명

    7.1.1. 트랜잭션의 중요성

    7.1.2. ACID 속성 소개

  7.2. 트랜잭션 경계 설정

  7.3. 롤백 및 커밋 처리

 

8. 마이바티스와 스프링 연동

  8.1. 스프링 설정

  8.2. SqlSessionFactoryBean 설정

  8.3. 스프링 DAO 작성

    8.3.1. 인터페이스 기반 스프링 DAO

    8.3.2. XML 매퍼를 사용한 스프링 DAO

    8.3.3. 어노테이션 기반 스프링 DAO

  8.4. 트랜잭션 관리 통합

    8.4.1. 스프링 트랜잭션 관리 연동 방법

 

9. 실습 및 예제

  9.1. CRUD 기반 예제

    9.1.1. 회원 관리 시스템 실습

  9.2. 웹 애플리케이션 연동

    9.2.1. 스프링 부트와 마이바티스 연동 예제

  9.3. 고급 기능 실습

    9.3.1. 동적 SQL 실습

    9.3.2. 페이징 처리 실습

    9.3.3. 배치 작업 실습

 

10. 마무리

  10.1. 마이바티스 사용 시 주의사항

    10.1.1. N+1 문제

    10.1.2. 커넥션 누수

  10.2. 성능 최적화

    10.2.1. 캐싱 방법

    10.2.2. 쿼리 최적화

 

반응형

댓글