Purple Bobblehead Bunny

Backend/SPRING

[Spring]MyBatis

준영어린이 2022. 8. 1. 20:44

 

🚀 Mybatis는 자바 오브젝트와 SQL 사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping) 프레임워크 이다.

기존 JDBC만을 이용한 방식은 프로그램 소스 안에서 직접 connection을 맺고 SQL문을 처리하고

rs.next() 등을 이용하여 하나씩 받아와야 해 코드가 길어지고, SQL의 변경이 필요한 경우에도 java 프로그램을 수정하기 때문에 유연성이 좋지 못하다. MyBatis에서는 상당부분의 코드와 파라미터 설정 및 ResultSet 결과를 대신해주어 

코딩의 중복과 무의미한 코드 작성을 생략할 수 있으면서, SQL문을 xml 파일에 작성하여 변환이 자유롭고 가독성이 좋다.

 

 

  • 간단한 persistence framework. 배우기 쉽다.
  • 코드가 줄어들고, 설정이 간단하다.
  • 데이터 접근 속도를 높혀주는 Join 매핑 사용
  • 오픈소스
  • SQL문이 application source code로 부터 완전 분리
  • java, c#, .net 등 어떤프로그램 언어로도 구현 가능해 이식성이 좋다.

🚀 사용 방법

MyBatis로 SQL문을 사용하는 방식은 3가지가 있다.

  • XML을 이용하여 SQL문 설정, DAO에서는 XML을 찾아 실행하는 코드로 작성
    • 장점 -  SQL문은 별도로 XML로 작성되어 SQL문의 수정이나 유지보수에 적합
    • 단점 -  개발 시 코드 양이 많아지고, 복잡성이 증가
  • annotation과 인터페이스만을 이용하여 SQL문 설정
    • 장점 -  별도의 DAO 없이 개발 가능하여, 생산성이 크게 중가
    • 단점 -  SQL문을 annotation으로 작성하므로, 매번 수정을 할 경우 다시 컴파일 필요
  • 인터페이스와 XML로 작성된 SQL문의 활용
    • 장점 -  간단한 SQL문은 annotation으로 복잡한 SQL문은 XML으로 처리하여 유연성이 좋다.
    • 단점 -  개개인의 개발 방식 차이로 인해 유지보수가 중요한 프로젝트에서는 부적합

dependency(종속성) 추가
Maven Update

 

Bean 설정

 

JUnit Test Case

 

 

 

어노테이션을 이용하여 Query 전달

 

Interface
root-context
root-context

 

 

JUnit Test Case

'Backend > SPRING' 카테고리의 다른 글

[Spring] GET POST 한글처리  (0) 2023.01.31
[Spring] Model  (0) 2023.01.17
[Spring] Connection Pool  (0) 2022.08.01
[Spring] DB OJDBC  (0) 2022.08.01
[Spring] Logj4  (0) 2022.08.01