ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring]Mybatis
    Backend/Spring 2022. 1. 6. 16:54

    Mybatis 개요와 특징

    • Mybatis는 Java Object와 SQL문 사이의 자동 Mapping 기능을 지원하는 ORM Framework
    • Mybatis는 SQL을 별도의 파일로 분리해서 관리(대표적 쿼리문이 Xml로 갑니다)★
      Object - SQL 사이의 parameter mapping 작업을 자동으로 해줌.
    • Mybatis를 공부할 때 책 보다는 기술문서인 https://mybatis.org/mybatis-3/ko/index.html 를 추천드립니다.

    특징

    • 쉬운 접근성과 코드의 간결함
      • 가장 간단한 persistence framework
      • xml형태로 서술된 JDBC 코드라 생각해도 될 만큼 JDBC의 모든 기능을 Mybatis가 대부분 제공
      • 복잡한 JDBC 코드를 걷어내며 깔끔한 소스코드를 유지
      • 수동적인 parameter 설정과 Query 결과에 대한 mapping 구문을 제거
    • SQL문과 프로그래밍 코드의 분리
      • SQL에 변경이 있을 때 마다 자바 코드를 수정하거나 컴파일 하지 않아도 됨

    Mybatis에서의 # $ 차이점 조사하기

    가장 큰 차이는 preparedStatement 와 Statement 의 차이점이라 보면된다 (쉽게 동적 과 정적의 차이)

    #의 경우 파라미터가 String 형태로 들어와 ㅏ동적으로 '파라미터' 형태가 됩니다. ( ? 이런식)
    예시는, #{id} 의 id의 값이 asd라면 쿼리문에는 id='asd'의 형태가 됩니다. 

    $의 경우는

    파라미터가 바로 출력이 됩니다.

    해당 칼럼의 자료형에 맞추어 파라미터의 자료형이 변경이 진행됩니다.

     

     

     

    Mybatis설정

    alias ,mapper설정

    # Mybatis Setting
    mybatis.type-aliases-package=com.ssafy.backend.**.model

    별도의 model이름을 alias를 지정하지 않아도 그대로 클래스명으로 받아서 실행합니다.

     

    mybatis.mapper-locations=mapper/*.xml

    mapper를 설정할 때에 src/main/resources/mapper/에 모두 넣어서 이렇게 설정하였습니다.

     

    여기서 경로를 설정할 때에 * ** 나오게 되는데 이 둘의 가장 큰 차이는 파일과 폴더라고 보시면 됩니다.

     

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

    [Spring] 스프링 핵심원리 _예제 만들기  (0) 2022.02.14
    [Spring]스프링 핵심 원리_객체 지향 설계와 스프링  (0) 2022.02.13
    [Spring]Di에 대한 설명  (0) 2022.02.06
    [Spring]AOP  (0) 2021.12.01
    [Spring]스프링특징_DI  (0) 2021.11.30
Designed by Tistory.