Web/Spring

[Spring] Mybatis

hikr90 2025. 1. 9. 22:08

# 마이바티스

- DB에 접근하는 작업 및 자바의 객체와 SQL쿼리문 사이의 자동 매핑을 지원하는 프레임 워크

- 인터넷 사용자와 기능의 복잡도가 증가함에따라 기존의 JDBC방식에서 마이바티스등의 프레임워크 방식을 사용하게 되었다. 

 

마이바티스는 Sql 문장을 별도로 XML에서 분리하여 Sql Developer에서처럼 표준화된 방법으로 사용할 수 있도록 한다.
기존의 JDBC방법처럼 Sql코드 자체를 수정해도 Dao에서 복잡하게 수정할 필요가 없다는 장점이 있다.

기능
Sql을 소스 코드가 아닌 XML 파일로 별도 분리하여 관리
Sql문과 프로그래밍 코드를 분리하여 구현
데이터 소스와 트랜젝션 처리 기능을 제공한다.

[참고] JNDI는 자바와 DB를 연결하는 인터페이스로,  서로 간의 연결을 원활하게하는 역할을 한다.

 

 

구성 요소

요소
의미
sqlMapConfig
DB접속 주소나 맵퍼 (XML) 파일의 경로 정보를 포함하는 설정 파일
sqlSession
Sql처리 객체
sqlSession factoryBuilder
군집 형태(Factory)의 설정 파일을 해석하여 맵퍼에 접근하는 FactoryBuilder 클래스
sqlSessionFactory
SqlSession 객체 생성을 돕는 클래스

 

# 동작 순서

(1) SqlMapConfig.xml에 각 기능별로 실행할 SQL문을 SqlMap.xml에 미리 작성하여 등록

(2) 애플리케이션에서 데이터베이스와 연동하는데 필요한 데이터를 각각의 매개변수에 저장한 후 마이바티스에 저장

(3) 애플리케이션에서 요청한 SQL문을 SqlMap.xml에서 선택

(4) 전달한 매개변수와 선택한 SQL문을 결합

(5) 매개변수와 결합된 SQL문을 DBMS에서 실행 

(6) DBMS에서 반환된 데이터를 애플리케이션에서 제공하는 타입의 매개변수에 저장한 뒤 반환

'Web > Spring' 카테고리의 다른 글

[Spring] XML 설정 파일  (0) 2025.01.09
[Spring] Restful API  (0) 2025.01.09
[Spring] 관점지향 프로그래밍  (0) 2025.01.09
[Spring] 어노테이션  (0) 2025.01.09
[Spring] MVC 디자인 패턴  (0) 2025.01.09