웹 프로그래밍

Mybatis란?

bysnow 2021. 5. 24. 20:02
728x90
반응형
SMALL

교재출처 : 자바 웹을 다루는 기술. 이병승. 길벗

http://www.yes24.com/Product/Goods/68371015

 

자바 웹을 다루는 기술

기초부터 실무까지 한 권으로!최근 효율적으로 개발할 수 있는 웹 프레임워크가 많이 나왔지만, JSP와 서블릿은 자바 웹 개발에서 가장 중요하고도 기본이 되는 내용이다. 기초가 튼튼해야 웹 프

www.yes24.com

 

인터넷 사용자가 크게 증가하고 애플리케이션의 기능이 복잡해지면서 JDBC만으로 개발하는 것은 한계에 부딪혔다. 기존 JDBC로 개발할 경우 반복적으로 구현해야 할 SQL문도 많을 뿐 아니라 각각의 SQL문도 복잡하다. 따라서 자연스럽게 마이바티스나 하이버네이트 같은 데이터베이스 연동과 관련된 프레임워크가 등장하게 되었다. 

 

기존의 JDBC를 연동하기 위해서는 다음과 같은 과정을 거쳐야 했다.

connection -> Statement 객체 생성 -> SQL문 전송 -> 결과 반환 -> close

이 방식의 단점은 SQL문이 프로그래밍 코드에 섞여 코드를 복잡하게 만든다는 것이다. 이 방법을 개선해 SQL문의 가독성을 높여 사용하기 편하게 만든 것이 바로 마이바티스 프레임워크이다. 

 

바이바티스 프레임워크는 다음과 같은 특징을 가진다.

 

  • SQL 실행 결과를 자바 빈즈 또는 Map 객체에 매핑해주는 Persistence 솔루션으로 관리한다. 즉 SQL을 소스 코드가 아닌 XML로 분리한다.
  • SQL문과 프로그래밍 코드를 분리해서 구현한다.
  • 데이터소스(DataSource)기능과 트랜잭션 처리 기능을 제공한다.

이미지출처 : https://dadmi97.tistory.com/66

위의 그림은 퍼시스턴스 프레임워크로 사용된 마이바티스 구조이다. 교재에 사용된 그림과 같다.

 

  • SqlMapConfig.xml에 각 기능별로 실행할 SQL문을 SqlMap.xml에 미리 작성한 후 등록한다.
  • 애플리케이션에서 데이터베이스와 연동하는 데 필요한 데이터를 각각의 매개변수에 저장한 후 마이바티스에 전달한다.
  • 애플리케이션에서 요청한 SQL문을 SqlMap.xml에서 선택한다.
  • 전달한 매개변수와 선택한 SQL문을 결합한다.
  • 매개변수와 결합된 SQL문을 DBMS에서 실행한다.
  • DBMS에서 반환된 데이터를 애플리케이션에서 제공하는 적당한 매개변수에 저장한 후 반환한다.

정리하자면, 데이터베이스 연동 시 사용되는 SQL문을 미리 SqlMapConfig.xml에 작성해 놓고 애플리케이션에서 데이터베이스 연동 시 해당 SQL문에서 사용될 데이터를 지원하는 해당 매개변수에 저장한 후 SQL문에 전달한다. 전달된 매개변수와 SQL문을 결합해 SQL문을 DBMS로 전송하여 실행한다. 그리고 그 결과를 애플리케이션에서 제공하는 자료형으로 반환한다.

 

728x90
반응형
LIST

'웹 프로그래밍' 카테고리의 다른 글

스프링부트 - JPA 연관관계(1)  (0) 2021.05.26
스프링부트 사용해보기 -1. 기본 개념들  (0) 2021.05.24
서블릿이란?  (0) 2021.05.20
MVC Spring 구조  (0) 2021.05.17
문법 - JSTL 사용하기  (0) 2021.05.11