ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MyBatis 속성
    Spring/Spring 기본 지식 2020. 5. 6. 08:34
    반응형

    이전글 보기

    2020/03/23 - [Spring/Spring 기본 지식] - Spring mybatis jdbc 기본 연결테스트

    2020/03/23 - [Spring/Spring 기본 지식] - JDBC 사용 - 커넥션 풀

     

    select 속성

    속성 설명
    id

    구문을 찾기 위해 사용될 수 있는 네이스페이스내 유일한 구분자

    parameterType 구문에 전달될 파라미터의 패키지 경로를 포함한 전체 클래스명이나 별칭
    flushCache 이 값을 true 로 셋팅하면 구문이 호출될때마다 캐시가 지원 된다.(flush). 디폴트는 false 이다.
    timeout 예외가 던져지기 전에 데이터베이스의 요청 결과를 기다리는 최대시간을 설정한다. 디폴트는 셋팅하지 않는 것이고 드라이버에 따라 다소 지원되지 않을 수 있다.
    statementType STATEMENT, PREPARED 또는 CALLABLE중 하나를 선택할 수 있다. 마이바티스에게 Statement, PreparedStatement 또는 CallableStatement를 사용하게 한다. 디폴트는 PREPARED 이다.
    useGeneratedKeys (입력(insert, update)에만 적용) 데이터베이스에서 내부적으로 생성한 키 (예를들어 MySQL또는 SQL Server와 같은 RDBMS의 자동 증가 필드)를 받는 JDBC getGeneratedKeys메소드를 사용하도록 설정하다. 디폴트는 false 이다.
    keyProperty (입력(insert, update)에만 적용) getGeneratedKeys 메소드나 insert 구문의 selectKey 하위 엘리먼트에 의해 리턴된 키를 셋팅할 프로퍼티를 지정. 디폴트는 셋팅하지 않는 것이다. 여러개의 칼럼을 사용한다면 프로퍼티명에 콤마를 구분자로 나열할수 있다.
    keyColumn (입력(insert,update)에만 적용) 생성키를 가진 테이블의 컬럼명을 세팅, 키 칼럼이 테이블에 첫번째 컬럼이 아닌 데이터베이스(PostgreSQL 처럼)에서만 필요하다. 여러개의 컬럼을 사용한다면 프로퍼티명에 콤마를 구분자로 나열을 할 수 있다.
    databaseId 설정된 databaseIDProvider가 있는 MyBatis는 databaseID 속성이 없는 모든 구문을 로드하거나 일치하는 databaseID와 함께 로드될 것이다. 같은 구문에서 databaseID가 있거나 없는 경우 모두 있담녀 뒤에 나온 것이 무시된다.
    parameterMap 파라미터 매핑하기 위해 사용되었으나 현재는 사용하지 않음

     

     

     

    Insert, update, delete 속성

    속성 설명
    keyProperty selectKey구문의 결과가 셋팅될 대상 프로퍼티.
    keyColumn 리턴되는 결과셋의 칼럼명은 프로퍼티에 일치한다. 여러개의 칼럼을 사용한다면 칼럼명의 목록은 콤마를 사용해서 구분한다.
    resultType 결과의 타입. 마이바티스는 이 기능을 제거할 수 있지만 추가하는게 문제가 되지는 않을것이다. 마이바티스는 String을 포함하여 키로 사용될 수 있는 간단한 타입을 허용한다.
    order BEFORE 또는 AFTER를 셋팅할 수 있다. BEFORE로 설정하면 키를 먼저 조회하고 그 값을 keyProperty 에 셋팅한 뒤 insert 구문을 실행한다. AFTER로 설정하면 insert 구문을 실행한 뒤 selectKey 구문을 실행한다. 오라클과 같은 데이터베이스에서는 insert구문 내부에서 일관된 호출형태로 처리한다.
    statementType 위 내용과 같다. 마이바티스는 Statement, PreparedStatement 그리고 CallableStatement을 매핑하기 위해 STATEMENT, PREPARED 그리고 CALLABLE 구문타입을 지원한다.

     

     

     

    #{}

    • 파라매터가 STring 형태로 들어와 자동으로 '파라메터' 형태가 된다.
    • 쿼리 주입을 예방할 수 있어 보안측면에서 유리하다.
    • PreparedStatement을 생성하여 ?에 파라미터가 바인딩되어 수행된다. 이렇게 파싱된 쿼리문은 재활용(캐싱)되기 때문에 효율적이다.

     

    ${}

    • 파라매터가 바로 출력된다.
    • 해당 컬럼의 자료형애 맞추어 파라매터의 자료형이 변경된다.
    • 쿼리 주입을 예방할 수 없어 보안측면에서 불리하다. 그러므로 사용자의 입력을 전달할때는 사용하지 않는편이 낫다.
    • 테이블이나 컬럼명을 파라메터로 전달하고싶을 때 사용한다. #{}은 자동으로 ''가 붙어서 이 경우에는 사용할 수 없다.

     

     

     

     

     

     

     

     

     

     

     

    출처

    https://mybatis.org/mybatis-3/ko/sqlmap-xml.html

    https://logical-code.tistory.com/25

    반응형
Designed by Tistory.