mybatis select 태그 정리
매퍼 파일 안에 있는 <select> 태그는 데이터베이스로부터 데이터를 조회하는 SQL 쿼리를 정의합니다. <select> 태그의 주요 속성과 사용 방법을 자세히 알려드리겠습니다.
mybatis의 mapper.xml 작성법은?
select 주요 속성
1. id
<select> 태그의 고유 식별자입니다. 다른 쿼리와 구분하기 위해 유니크해야 합니다.
2. resultType
조회 결과를 매핑할 자바 객체의 타입을 지정합니다. 일반적으로 단일 객체나 기본 자료형을 사용합니다.
3. parameterType
SQL 쿼리에 전달할 파라미터 객체의 타입을 지정합니다. 매개변수를 사용하지 않는 경우 생략할 수 있습니다.
4. statementType
SQL 쿼리의 유형을 지정합니다. 기본값은 PREPARED이며, 다른 값으로 CALLABLE이나 STATEMENT를 사용할 수 있습니다.
5. fetchSize
조회할 데이터의 크기를 지정합니다. 대용량 데이터를 처리할 때 유용합니다.
6. timeout
쿼리의 실행 제한 시간을 밀리초 단위로 설정합니다.
7. parameterMap
매개변수를 매핑하기 위한 외부 매개변수 맵을 참조합니다.
8. resultMap
결과를 매핑하기 위한 외부 결과 맵을 참조합니다.
9. resultSetType
쿼리 결과의 커서 타입을 지정합니다. FORWARD_ONLY, SCROLL_SENSITIVE, SCROLL_INSENSITIVE 등의 값을 사용할 수 있습니다.
9. useCache
쿼리 결과를 캐시에 저장할지 여부를 설정합니다. 기본값은 true입니다.
<select> 태그 내부에는 SQL 쿼리가 포함됩니다. SQL 쿼리는 일반적인 SELECT 문을 사용하며, 필요한 매개변수는 #{} 또는 ${}를 사용하여 지정합니다. #{}은 JDBC의 PreparedStatement를 사용하여 자동으로 SQL 인젝션을 방지하고, ${}는 값을 그대로 치환합니다.
<select> 태그의 예시
<select id="selectUserById" parameterType="int" resultType="com.example.User">
SELECT * FROM users WHERE id = #{userId}
</select>
위의 예시는 selectUserById라는 고유 식별자를 가진 <select> 태그입니다. 이 쿼리는 int 타입의 userId 매개변수를 받고, com.example.User 타입의 객체로 결과를 매핑합니다. 쿼리는 users 테이블에서 id가 주어진 userId와 일치하는 사용자를 조회합니다.
<select> 태그는 다양한 속성을 사용하여 조건을 지정하고 결과를 매핑할 수 있습니다. 예를 들어, WHERE 절에 조건을 추가하거나 ORDER BY 절을 사용하여 결과를 정렬할 수도 있습니다. MyBatis는 다양한 매핑 방식을 제공하기 때문에, <select> 태그를 사용하여 복잡한 결과를 매핑할 수도 있습니다.
MyBatis 동적 쿼리 사용법
<select id="selectUsersByCondition" parameterType="com.example.User" resultType="com.example.User">
SELECT * FROM users
<where>
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
위의 예시는 selectUsersByCondition라는 고유 식별자를 가진 <select> 태그입니다. 이 쿼리는 com.example.User 타입의 객체를 매개변수로 받고, 동적으로 SQL을 생성합니다. name과 age 매개변수가 주어진 경우 해당 조건을 WHERE 절에 추가합니다.
이렇게 <select> 태그를 사용하여 매퍼 파일에서 SQL 쿼리를 정의할 수 있으며, MyBatis가 제공하는 다양한 기능과 매핑 방식을 활용하여 데이터베이스와의 상호작용을 쉽게 구현할 수 있습니다.
'DB > Mybatis' 카테고리의 다른 글
ibatis mybatis 차이점 총정리! (0) | 2023.05.16 |
---|---|
[마이바티스] mybatis # $ 사용법 (0) | 2023.05.16 |
[MyBatis] mapper.xml 작성법 알아보기 (0) | 2020.12.04 |
[MyBatis] MyBatis 환경설정 세팅 (0) | 2020.12.01 |
댓글