애플리케이션의 규모가 작을 때는 JDBC를 이용해 충분히 개발할 수 있었습니다.
그러나 인터넷 사용자가 폭발적으로 증가하고 애플리케이션의 기능이 복잡해짐에 따라 기존의 JDBC로 개발하는 데는 한계가 드러나게 되었습니다.
기존 JDBC로 개발할 경우 반복적으로 구현해야 할 SQL문도 많을 뿐만 아니라 SQL문도 복잡합니다. 따라서 자연스럽게 마이바티스나 하이버네이트 같은 데이터베이스 연동 관련 프레임워크가 등장하게 되었습니다.
기존의 JDBC를 연동하려면 다음과 같은 과정을 거쳐야 했습니다.
connection ->Statement 객체 생성 -> SQL문 전송 ->결과 반환 -> close
이방식의 단점은 SQL문이 프로그래밍 코드에 섞여 코드를 복잡하게 만든다는 것입니다. 이 방법을 개선해 SQL문의 가독성을 높여 사용하기 편하게 만든 것이 바로 마이바티스 프레임워크입니다.
마이바티스 프레임워크의 특징
- SQL 실행 결과를 자바 빈즈 또는 Map 객체에 매핑해 주는 Persisitence 솔루션으로 관리합니다. 즉, SQL을 소스 코드가 아닌 XML로 분리합니다.
- SQL문과 프로그래밍 코드를 분리해서 구현합니다.
- 데이터소스 기능과 트랜잭션 처리 기능을 제공합니다.
persistence framework의 구조
- SqlMapConfig.xml에 각 기능별로 실행할 SQL문을 SqlMap.xml에 미리 작성한 후 등록합니다.
- 애플리케이션에서 데이터베이스와 연동하는데 필요한 데이터를 각각의 매개변수에 저장한 후 마이바티스에 전달합니다.
- 애플리케이션에서 요청한 SQL문을 SqlMap.xml에서 선택합니다.
- 전달한 매개변수와 선택한 SQL문을 결합합니다.
- 매개변수와 결합된 SQL문을 DBMS에서 실행합니다.
- DBMS에서 반환된 데이터를 애플리케이션에서 제공하는 적당한 매개변수에 저장한 후 반환합니다.
다시 정리해 보자면 데이터베이스 연동 시 사용되는 SQL문을 미리 SqlMapConfig.xml에 작성해 놓고 애플리케이션에서 데이터 베이스 연동 시 해당 sql문에서 사용될 데이터를 지원하는 해당 매개 변수에 저장한 후 SQL문에 전달합니다. 전달된 매개변수와 SQL문을 결합해 SQL문을 DBMS로 전송하여 실행합니다. 그리고 그 결과를 애플리케이션에서 제공하는 자료형으로 반환합니다.
'2020 > mybatis' 카테고리의 다른 글
mybatis 설치하기 (0) | 2020.01.14 |
---|