카테고리 없음
[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
반응형