MyBatis 문법 총 정리 : <if>, <choose>, <when>, <otherwise>, <trim>, <foreach>
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로 시작하는 조건문을 제거한다