IT/SPRING

MyBatis 문법 총 정리 : <if>, <choose>, <when>, <otherwise>, <trim>, <foreach>

나콘 2023. 7. 3. 11:26

 

 

 

 

1.<select>, <insert>, <update>, <delete>SQL 매핑 파일(XML)

MyBatis는 SQL 매핑 파일을 사용하여 SQL 쿼리와 자바 메서드를 매핑한다

이 파일은 <mapper> 요소로 시작하고,

<select>, <insert>, <update>, <delete> 등의 요소를 사용하여 각각의 SQL 쿼리를 정의한다 

 

 

 

 

2 .  #{} :매개 변수 바인딩

MyBatis에서는 SQL 쿼리에 매개 변수를 바인딩하여 동적인 쿼리를 생성할 수 있다 .

#{} 형식을 사용하여 매개 변수를 바인딩할 수 있다

예를 들어, WHERE id = #{userId}와 같은 형식으로 매개 변수를 사용할 수 있다 

 

 

 

3 .resultMap 결과 매핑

SQL 쿼리의 결과를 자바 객체에 매핑할 수 있다 .

 <resultMap> 요소를 사용하여 결과 매핑을 정의하고,

resultType 속성을 사용하여 자바 객체의 클래스를 지정할 수 있다

<result> 요소를 사용하여 각 열을 자바 객체의 속성에 매핑한다

 

 

 

 

 

 

4. 동적 SQL: MyBatis는 동적인 SQL 쿼리를 작성할 수 있는 다양한 기능을 제공한다

<if>, <choose>, <when>, <otherwise>, <trim>, <foreach> 등의 요소를 사용하여 동적인 SQL을 작성할 수 있다

 

4-1.<if>

getUserList라는 SQL 매핑 ID를 가진 쿼리는 users 테이블에서 조건에 따라 필터링된 결과를 가져온다.

<if> 요소를 사용하여 name과 age의 값에 따라 WHERE 절의 조건을 동적으로 생성

 

 

4-2. <choose>, <when>, <otherwise> 

여러 개의 조건 중에서 하나를 선택하여 SQL 생성

getUserList라는 SQL 매핑 ID를 가진 쿼리는 users 테이블에서 여러 조건 중 하나를 선택하여 필터링된 결과를 가져온다. <choose> 요소 내에서 <when> 요소를 사용하여 조건을 지정하고 조건이 충족이 되면 쿼리에 포함,

<otherwise> 요소를 사용하여 어떤 조건도 충족되지 않을 경우의 포함 

 

 

 

 

4-3. <foreach> 반복문 

: <foreach> 요소를 사용하여 반복문을 작성할 수 있다

이를 사용하여 컬렉션의 요소들을 반복하면서 동적인 SQL을 생성할 수 있다.

 

<foreach> : insertUsers라는 SQL 매핑 ID를 가진 쿼리는 주어진 Map에 있는 키-값 쌍을 사용하여 사용자를 삽입한다 <foreach> 요소를 사용하여 userMap이라는 Map을 반복하면서 각 키와 값의 쌍을 삽입 쿼리에 포함시킨다

 

 

 

 

 

4-4. <trim>

: <trim> 요소를 사용하여 동적 SQL의 시작 또는 끝에서 불필요한 공백이나 기타 문자를 제거할 수 있다 

<trim> : <trim> 요소를 사용하여 <if> 요소 내의 조건이 충족될 때만 WHERE 절을 동적으로 생성하고,

AND 또는 OR로 시작하는 조건문을 제거한다

 

반응형