학습 목표
1. MyBatis 에 대한 개념을 알아보자
2. yml 파일에 MyBatis 설정하는 방법 알아 보기
3. MyBatis 사용 방법
3 - 1 : UserRepository 인터페이스 선언 하기
3 - 2 : user.xml 파일을 정의 하기
3 - 3 : AccountRepository 인터페이스 선언 하기
3 - 4 : account.xml 파일 정의 하기
3 - 5 : HistoryRepository 인터페이스 선언 하기
3 - 6 : history.xml 파일 정의 하기
1. MyBatis 에 대한 개념
MyBatis는 자바 언어를 위한 데이터베이스 연동 프레임워크 중 하나로, SQL 쿼리와 자바 코드를 매핑하고 관리하기 위한 도구를 제공하는 프레임워크입니다. MyBatis는 SQL을 직접 작성하고 실행하는 대신 SQL 쿼리를 XML 파일이나 어노테이션을 사용하여 정의하고, 데이터베이스와 자바 객체 간의 매핑을 설정할 수 있도록 도와줍니다.
MyBatis의 핵심 개념
- 매퍼(Mapper): 매퍼는 SQL 쿼리와 자바 메서드를 연결하는 인터페이스 또는 XML 파일입니다. MyBatis에서 매퍼는 데이터베이스와 상호 작용하기 위한 모든 SQL 작업을 정의합니다.
- SQL 쿼리 매핑: MyBatis는 SQL 쿼리를 자바 코드에서 분리하여 XML 파일이나 어노테이션을 사용하여 정의합니다. 이렇게 정의된 SQL 쿼리는 매퍼에서 호출되며, MyBatis가 데이터베이스에 전달하여 실행합니다.
- 파라미터 매핑: MyBatis는 SQL 쿼리의 파라미터를 자바 객체와 매핑합니다. 이를 통해 SQL 쿼리 내에서 자바 객체의 속성을 사용할 수 있습니다.
- 결과 매핑: MyBatis는 SQL 쿼리의 결과를 자바 객체로 변환하여 반환합니다. 이를 통해 데이터베이스 결과를 자바 객체로 쉽게 사용할 수 있습니다.
- 세션(Session): MyBatis에서는 세션을 사용하여 데이터베이스와의 연결을 관리합니다. 세션은 데이터베이스 연결을 열고 닫는 데 사용되며, SQL 쿼리를 실행할 때마다 세션을 생성하고 사용합니다.
2. yml 파일에 MyBaits 설정 하기
의존성 설정 확인
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.0'
- mybatis: MyBatis 설정을 시작하는 루트 노드입니다.
- mapper-locations: MyBatis 매퍼 XML 파일의 위치를 나타냅니다.
- classpath:mapper/**.xml: 클래스패스(classpath) 상의 mapper 디렉터리 안에 있는 모든 XML 파일을 매퍼로 사용하겠다는 설정입니다. 이 디렉터리에는 SQL 쿼리와 자바 객체 간의 매핑 정보가 포함된 MyBatis 매퍼 파일입니다. MyBatis는 이러한 매퍼 파일을 로드하여 SQL 쿼리를 실행할 때 사용합니다.
- configuration: MyBatis의 추가적인 구성 옵션을 정의합니다.
- map-underscore-to-camel-case: true: 이 옵션은 데이터베이스의 컬럼 이름이 스네이크 케이스(my_column_name)로 되어 있을 때, 자바 객체의 프로퍼티 이름을 카멜 케이스(myColumnName)로 자동으로 변환하는 기능을 활성화합니다. 예를 들어, 데이터베이스 컬럼 **first_name*은 자바 객체의 프로퍼티 **firstName*에 자동으로 매핑됩니다. 이 옵션을 사용하면 자동 매핑의 편의성을 높일 수 있습니다.
- mapper-locations: MyBatis 매퍼 XML 파일의 위치를 나타냅니다.
이 설정은 MyBatis의 매퍼 파일을 클래스패스 상의 특정 디렉터리에서 로드하고, 데이터베이스 컬럼 이름과 자바 객체의 프로퍼티 이름 간의 자동 매핑을 활성화하는 데 사용됩니다. 이를 통해 MyBatis가 데이터베이스와 자바 객체 간의 데이터 전송을 더 쉽게 처리할 수 있게 됩니다.
3 - 1 : UserRepository 인터페이스 선언 하기
3 - 2 : user.xml 파일을 정의 하기
1 단계
2 단계
3 - 3 : AccountRepository 인터페이스 선언 하기
3 - 4 : account.xml 파일 정의 하기
3 - 5 : HistoryRepository 인터페이스 선언 하기
3 - 6 : history.xml 파일 정의 하기
'SpringBoot' 카테고리의 다른 글
BankApp - 화면 구현 2 (0) | 2023.09.19 |
---|---|
BankApp - 화면 구현1 (0) | 2023.09.19 |
BankApp - db 설정(h2 DB) (0) | 2023.09.19 |
BankApp - 모델링 (0) | 2023.09.19 |
BankApp - 패키지 설정 (0) | 2023.09.19 |