코딩항해기

[JSP] JDBC - MyBatis 기초 본문

JSP

[JSP] JDBC - MyBatis 기초

miniBcake 2024. 9. 27. 20:51

 

 

오늘 발표에서 중간프로젝트를 진행하며 아쉬운 점으로 JDBC의 반복되는 코드로 인한 가독성 저하를 개선하고 싶다고 작성했었는데, 과거 공부 자료를 둘러보니 MyBatis가 있었다. 사용법은 알고있는데 해당 부분이 MyBatis라는 인식이 옅였던 것 같다. 더는 놓쳐서 개선 못하는 일이 없도록 잘 기록하고 더 열심히 공부해야겠다. 참고로 MyBatis 외에도 JPA가 있다.

 

MyBatis Framwork

관계형 데이터베이스를 자바에서 쉽게 다루도록 도와주는 프레임워크로 JDBC의 문제점인 반복되는 코드를 줄여주며 JAVA코드와 SQL코드를 분리해 유지보수와 분업에 유리하게 만들어준다.

 

MyBatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object Relational Mapping) 프레임워크로, SQL 동적 쿼리, 저장 프로시저, 고급 매핑을 지원하는 SQL Mapper이다.

 

JDBC를 통해 RDBMS(관계형 데이터베이스)에 액세스하는 작업을 캡슐화하고 기존의 JDBC의 중복작업을 간소화해준다. XML 파일의 형태인 Mapper를 통해 프로그램 코드로부터 SQL 쿼리가 분리되는 환경을 제공하고 Java 객체와 매핑하는 작업을 한다.

 

ibatis는 2.5버전이며 JDK4버전 이상에서 사용가능하다.

MyBatis는 3.0버전이며 JDK5버전 이상에서 지원한다.

ibatis와 MyBatis의 차이점은 몇 개의 문법 및 사용 용어(명칭) 변경 등이 있다.

 

MyBatis 특징

JDBC의 기능을 MyBatis가 대부분 제공하고 수동적인 파라미터 설정과 쿼리 결과에 대한 맵핑 구분을 제거할 수 있다. 또한 기존 JDBC는 프로그램 소스에 SQL문을 작성하는 방식으로 생산성이 좋지 않았던 부분을 개선해 기존 JDBC보다 사용하기 편리하다.

 

SQL문과 프로그래밍 코드의 분리로 이식성이 좋아지고 SQL에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일 하지 않아도 된다. 

 

객체 프로퍼티로 파라미터와 결과를 객체로 자동 매핑할 수 있도록 지원해주어 간단하며 Spring과 연동이 좋고 다양한 언어로 구현 가능한 장점이 있다.

 

 

MyBatis 동작순서

요청이 들어오기 전 준비 단계

1) 실행 중인 Application이 SqlSessionFactoryBuilder 를 만든다.

2) 팩토리 빌더는 MyBatis Config File이라는 설정 파일을 참고한다.

3) 해당 설정 파일을 참고하여 SqlSessionFactory를 빌드한다.

 

요청이 들어온 후 처리 단계

4) 클라이언트(사용자)로부터 요청이 온다.

5) SqlSession Factory에서 SqlSession을 가져와 메모리에 할당한다.

6) SqlSession을 Application에 반환하고 응용프로그램이 SqlSession에서 매퍼 인터페이스 구현 개체를 가져온다.

7) 응용 프로그램이 SqlSession에서 메퍼 인터페이스의 구현 개체를 가져온다.

8) 응용 프로그램이 매퍼 인터페이스의 메서드를 호출한다.

9) 매퍼 인터페이스의 구현 개체가 SqlSession의 메서드를 호출하고 SQL실행을 요청한다.

10) SqlSession은 매핑 파일에서 실행할 SQL을 가져와 SQL을 실행한다.

 

 

MyBatis jar 파일 URL

 

Products

A blog about the the MyBatis data mapper framework.

blog.mybatis.org

 

 

Releases · mybatis/mybatis-3

MyBatis SQL mapper framework for Java. Contribute to mybatis/mybatis-3 development by creating an account on GitHub.

github.com

 

java로 사용할 예정이므로 Products 페이지에 들어가 SQL Mapping Framework for Java Links의 download를 클릭하거나,

클릭하면 열리는 Git-Hub 주소로 바로 들어가 jar파일을 다운로드 할 수 있다. 해당 jar파일은 ojdbc.jar파일과 함께 프로젝트에 import되어야한다.