ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [mybatis] Mapper Xml 파일 - select문
    카테고리 없음 2022. 4. 17. 22:40
    • cache - 해당 네임스페이스을 위한 캐시 설정
    • cache-ref - 다른 네임스페이스의 캐시 설정에 대한 참조
    • resultMap - 데이터베이스 결과데이터를 객체에 로드하는 방법을 정의하는 엘리먼트
    • sql - 다른 구문에서 재사용하기 위한 SQL 조각
    • insert - 매핑된 INSERT 구문.
    • update - 매핑된 UPDATE 구문.
    • delete - 매핑된 DELEETE 구문.
    • select - 매핑된 SELECT 구문.

     

    Select 

    가장 흔히 사용할 엘리먼트. 
    데이터베이스에서 데이터를 가져올때 사용한다.

    간단히 말하자면 mybatis의 select는 데이터를 조회하고 그 결과를 매핑한다.

     

    <select id="selectPerson" parameterType="int" resultType="hashmap">
    	SELECT * FROM PERSON WHERE ID = #{id}
    </select>

    이 구문의 이름은 selectPerson 이고 int 타입의 파라미터를 가진다.
    그리고 그 결과 데이터는 hashMap에 저장된다.

     

    #{id} 라는 표기법은 PreparedStatement 파라미터를 만들도록 마이바티스에게 지시하는데 
    JDBC(Java Database Connectivity)를 사용할때 PreparedStatement 에 "?" 형태로 파라미터가 전달된다.
    즉 위의 쿼리문은 아래와 같이 동작하게 된다.

    String selectPerson = "SELECT * FROM PERSON WHERER ID=?";
    PreparedStatement ps = conn.prepareStatement(selectperson);
    ps.setInt(1, id);
    
    // PreparedStatement 객체는 SQL구문을 실행시키는 기능을 갖는 객체로서
    // '?'에 대응되는 값을 지정할때 setXXX메소드를 통해 설정한다.

     

     

    Select문 속성

     

     

    속성                           설명

    id 명령문을 참조하는 데 사용할 수 있는 이 네임스페이스의 고유 식별자입니다.
    parameterType 이 명령문에 전달될 매개변수의 완전한 클래스 이름 또는 별명. MyBatis는 명령문에 전달된 실제 매개변수에서 사용할 TypeHandler를 계산할 수 있기 때문에 이 속성은 선택 사항입니다. 기본값은 unset입니다.
       
    resultType 쿼리문 수행 후 어떤 타입으로 반환할것이다 라는걸 지정해준다.
    resultMap 외부에 대한 명명된 참조 resultMap입니다. 결과 맵은 마이바티스의 가장 강력한 기능으로, 이를 잘 이해하면 어려운 매핑 사례를 많이 해결할 수 있다. resultMapOR 둘 다 사용 resultType하지 마십시오.
    flushCache 이것을 true로 설정하면 이 문이 호출될 때마다 로컬 및 2차 수준 캐시가 플러시됩니다. 기본값: falseselect 문용입니다.
    useCache 이것을 true로 설정하면 이 문의 결과가 2단계 캐시에 캐시됩니다. 기본값: trueselect 문용입니다.
    timeout 이것은 드라이버가 예외를 던지기 전에 데이터베이스가 요청에서 반환될 때까지 기다리는 시간(초)을 설정합니다. 기본값은 unset(드라이버에 따라 다름)입니다.
    fetchSize 이것은 드라이버가 이 설정과 동일한 크기로 번호가 매겨진 행 배치의 결과를 반환하도록 하는 드라이버 힌트입니다. 기본값은 unset(드라이버에 따라 다름)입니다.
    statementType STATEMENT, PREPARED또는 CALLABLE. _ 이로 인해 MyBatis는 각각 또는 Statement를 사용합니다. 기본값: . PreparedStatementCallableStatementPREPARED
    resultSetType 다음 중 하나 FORWARD_ONLY| SCROLL_SENSITIVE| SCROLL_INSENSITIVE| DEFAULT(미설정과 동일). 기본값은 unset(드라이버에 따라 다름)입니다.
    databaseId 구성된 databaseIdProvider가 있는 경우 MyBatis는 속성이 databaseId 없거나 현재 속성과 databaseId일치하는 모든 명령문을 로드합니다. databaseId후자가 있는 경우 와 없는 경우 동일한 진술이 발견되면 폐기됩니다.
    resultOrdered 이것은 중첩된 결과 선택 문에만 적용 가능합니다. 이것이 true인 경우 중첩된 결과가 포함되거나 함께 그룹화되어 새 기본 결과 행이 반환될 때 이전 결과 행에 대한 참조가 더 이상 발생하지 않는다고 가정합니다. 이렇게 하면 중첩된 결과를 훨씬 더 메모리 친화적으로 채울 수 있습니다. 기본값: false.
    resultSets 이는 여러 결과 집합에만 적용됩니다. 명령문에서 반환할 결과 집합을 나열하고 각각에 이름을 지정합니다. 이름은 쉼표로 구분됩니다.

    mybatis 문서에서 복사해왔당. 
    개인적으로 자주 봤던 항목들은 색깔로 표시해놨다...! 다른 항목들은 자주 사용안해본것 같아..

    728x90
    반응형

    댓글

Designed by Tistory.