class 38 - 스프링 Ajax / 마이바티스 동적쿼리

yoneeki·2023년 3월 28일
0

training-jp

목록 보기
28/31

AJAX

타임리프로 자바스크립트 함수

  • Thymeleaf에서 자바스크립트 함수 내에서 변수를 사용하려면, 서버측 변수를 JavaScript 변수로 변환하는 Thymeleaf 표현식을 사용해야 합니다. 예를 들어, 다음과 같이 서버측 변수 message를 JavaScript 변수로 변환할 수 있습니다.
<script th:inline="javascript">
    function myFunction() {
        var message = /*[[${message}]]*/ '';
        console.log(message);
    }
</script>

실습



  • @ResponseBody 태그를 사용해서 return을 그게 화면에 출력된 것 같은 효과를 주고 -> ajax는 그 response를 받는 것

마이바티스 동적쿼리

마이바티스(MyBatis)는 자바 객체와 SQL문 사이의 자동 매핑을 지원하는 ORM 프레임워크 중 하나입니다. 마이바티스를 사용하면 자바 개발자들은 SQL문을 작성하지 않고도 쉽게 데이터베이스를 조작할 수 있습니다.
마이바티스에서 동적 쿼리(Dynamic Query)조건에 따라 다른 SQL문을 생성하는 것을 말합니다. 동적 쿼리를 사용하면 하나의 SQL문으로 여러 가지 조건을 처리할 수 있습니다.

if 태그

<select id="selectUser" parameterType="java.lang.String" resultType="User">
  SELECT *
  FROM user
  <if test="userId != null">
    WHERE user_id = #{userId}
  </if>
</select>

choose-when-otherwise 태그

<select id="selectUser" parameterType="java.lang.String" resultType="User">
  SELECT *
  FROM user
  <choose>
    <when test="gender == 'M'">
      성별 : 남성
    </when>
    <when test="gender == 'F'">
      성별 : 여성
    </when>
    <otherwise>
      성별 : 미입력
    </otherwise>
  </choose>
</select>

foreach 태그

<select id="selectUser" parameterType="java.util.List" resultType="User">
  SELECT *
  FROM user
  WHERE user_id IN
  <foreach item="item" collection="idList" open="(" separator="," close=")">
    #{item}
  </foreach>
</select>

where 태그

where 태그는 일반적으로 WHERE절에서 사용되며, 동적 쿼리를 작성할 때 사용됩니다.
where 태그 내부에 작성한 SQL문은 WHERE절에 자동으로 추가됩니다.

예를 들어, 다음과 같은 SQL문을 생성하는 동적 쿼리를 작성한다고 가정해봅시다.

# SQL
SELECT * FROM my_table WHERE column1 = #{value1} AND column2 = #{value2}
# MyBatis
<select id="selectByExample" parameterType="com.example.MyTableExample" resultType="com.example.MyTable">
  SELECT * FROM my_table
  <where>
    <if test="value1 != null">
      AND column1 = #{value1}
    </if>
    <if test="value2 != null">
      AND column2 = #{value2}
    </if>
  </where>
</select>

위 코드에서 where 태그는 SQL문에서 WHERE절을 나타냅니다. if 태그를 사용하여 동적으로 SQL문을 생성하고, where 태그 내부에 작성하면 WHERE절에 자동으로 추가됩니다.
만약 value1이 null이라면 첫 번째 if 태그가 무시되고, value2가 null이라면 두 번째 if 태그가 무시됩니다. 따라서 where 태그 내부에 추가되는 SQL문은 필요한 조건에 따라 자동으로 생성됩니다.

실습





profile
Working Abroad ...

0개의 댓글