[0429] Mybatis

JIYEONG YUN·2021년 5월 5일
0

SSAFY

목록 보기
1/4

JDBC를 자동화하기엔 아래와 같이 한계점이 존재한다.

📍 JDBC 순서에 따른 자동화의 한계점

    1️⃣ Driver Loading
     - Driver Class Name은 뭘 쓸지 모르기 때문에 알려줘야 함

    2️⃣ Connection(DB연결)
     - url, username, password는 알 수 없음

    3️⃣ SQL
     - insert, select인지 어떤 쿼리인지 알 수 없음

    4️⃣ PreparedStatement 만들고 set (값 세팅)
     - 생성은 가능해도 값이 어떤 게 들어갈지 모르기 때문에 알 수 없음

    5️⃣ Execute
     - insert, update, delete는 자동으로 실행 가능. return 타입이 int이기 때문에.
     - 그러나 select는 ResultSet이라 공통이라 생각할 수 있지만, ResultSet을 자바에 바로 사용할 수 없어 next()를 사용하여 DTO 등에 데이터를 넣는 것처럼 어떤 Dto에 데이터를 넣는지 알 수 없기 때문에 자동화 불가능
     - 따라서 DTO 지정이 필요

    6️⃣ Close
     - 자동화 가능

=> 따라서 각 단계별 볼드처리한 부분만 세팅해준다면 JDBC 대신 Framework로 바꿀 수 있다. 여기서는 Mybatis로!


📍 MyBatis

  • Java Object와 SQL뭄 사이의 자동 Mapping 기능을 지원하는 ORM Framework
  • DAO에 있는 JDBC를 대신하는 Framework(단, 위 세팅 해야할 부분을 xml에 세팅해주기)
  • MyBatis는 SQL을 별도의 파일로 분리해서 관리
  • Object - SQL 사이의 parameter mapping 작업을 자동으로 해 줌.
  • MyBatis는 Hibernate나 JPA(Java Persistence API)처럼 새로운 DB 프로그래밍 패러다임을 익혀야 하는 부담없이, 개발자가 익숙한 SQL을 그대로 사용하면서 JDBC 코드 작성의 불편함을 제거해 주고, 도메인 객체나 VO 객체를 중심으로 개발이 가능

📍 MyBatis의 특징

  • 쉬운 접근성과 코드의 간결함
    • 가장 간단한 persistence framework
    • XML 형태로 서술된 JDBC 코드라 생각해도 될 만큼 JDBC의 모든 기능을 MyBatis가 대부분 제공
    • 복잡한 JDBC 코드를 걷어내며 깔끔한 소스코드 유지
    • 수동적인 parameter 설정과 Query 결과에 대한 mapping 구문을 제거
  • SQL문과 프로그래밍 코드의 분리
    • SQL에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일 하지 않아도 됨
    • SQL 작성과 관리 또는 검토를 DBA와 같은 개발자가 아닌 다른 사람에게 맡길 수 있음
  • 다양한 프로그래밍 언어로 구현 가능
    • Java, C#, .NET, Ruby, ...

🔗 MyBatis User Guide


namespace

profile
나의 '개발'자국 🐾 | [이전 블로그] https://blog.naver.com/yoonjy1106

0개의 댓글