Database/MyBatis
-
Myabtis - <sql>, <include> 태그Database/MyBatis 2022. 4. 28. 16:28
, 태그 태그 태그는 다른 구문에서 재사용 가능한 sql 구문을 정의할 때 사용한다. 재사용할 sql 구문 사용 방법은 위와 같다. 태그의 id 속성에 값을 부여한 후 태그 내에 사용할 쿼리를 작성하면 된다. 태그 내에 있는 sql 구문을 재사용하기 위해서는 재사용할 쿼리의 상단에 선언되어야 한다. 특정 쿼리문에서 태그를 불러왔지만, 상단에 선언되어 있지 않았다면 해당 태그를 불러올 수 없을 것이다. title = #{title} 위 코드와 같이 태그 내에 파라미터 값을 추가해도 무방하다. 단, 해당 태그를 불러오는 쿼리문에서 태그 내에 선언된 파라미터 값을 처리할 수 있는 인자 값이 존재해야 한다. 태그 같은 파일 내에 정의한 태그를 불러오기 위해 사용되는 태그이다. where boardNo = #{b..
-
MyBatis - 대소문자 구분 없이 데이터 조회하기Database/MyBatis 2022. 3. 24. 17:06
대소문자 구분 없이 데이터 조회 기존의 코드 SELECT FROM TBL_XBR_IDX_CALC WHERE (INDX_NM LIKE '%' || #{indexNameKeyword} || '%' ${searchType} TRGT_ELMT_ID LIKE '%' || #{elementIdKeyword} || '%') ORDER BY INDX_SEQ, CACL_ORD 사용자로부터 검색어를 입력받아 해당 검색어를 포함하고 있는 데이터를 출력하는 쿼리문이다. 테스트 결과 대소문자를 구분하여 데이터를 조회한다는 문제점을 파악하고, 위 쿼리문을 대소문자 구분 없이 데이터를 조회할 수 있는 쿼리문으로 변경하기 위한 작업을 시작했다. lower, upper의 이용 LOWER(column_name) LIKE ('%' || ..
-
MyBatis - ${}와 #{}의 차이Database/MyBatis 2022. 3. 22. 12:39
검색 유형에 따른 코드의 구성 #{}를 사용한 기존 코드 SELECT FROM TBL_XBR_IDX_CALC WHERE INDX_SEQ LIKE '%' || #{searchKeyword} || '%' ORDER BY INDX_SEQ, CACL_ORD SELECT FROM TBL_XBR_IDX_CALC WHERE INDX_NM LIKE '%' || #{searchKeyword} || '%' ORDER BY INDX_SEQ, CACL_ORD SELECT FROM TBL_XBR_IDX_CALC WHERE CACL_ORD LIKE '%' || #{searchKeyword} || '%' ORDER BY INDX_SEQ, CACL_ORD SELECT FROM TBL_XBR_IDX_CALC WHERE TRGT_ELM..
-
MyBatis - <choose>, <when>, <otherwise> 태그Database/MyBatis 2022. 3. 21. 15:30
, , 태그 , , 의 이해 태그의 경우 조건식이 참인 모든 태그 내 쿼리문이 실행된다. 반면에, 태그 같은 경우 조건식이 참인 태그를 찾으면 해당 태그의 쿼리문만 실행한다. 다시 말해 조건식을 가진 여러 개의 태그 중 오로지 한 개의 태그 내 쿼리문을 실행하는 것이다. 대부분의 프로그래밍 언어에서 사용되는 if-else if 절과 비슷한 역할을 수행한다. 쿼리문01 쿼리문02 쿼리문03 쿼리문04 쿼리문05 태그 안에서 태그와 를 작성한다. 태그는 각각 test 속성을 가지며 해당 속성 안에 조건식을 작성한다. 태그가 실행되면 태그의 조건식을 순서대로 확인하여 참을 반환하는 태그 내 쿼리문을 실행하게 된다. 만약 태그의 조건식 중 참을 반환하는 것이 없을 경우 태그 내에 작성된 쿼리문이 실행된다. 추가..
-
MyBatis - MyBatis의 <if> 태그Database/MyBatis 2022. 3. 21. 15:01
태그 태그의 활용 MyBatis의 태그는 조건식이 참인 경우 쿼리문을 실행한다. 전달받은 파라미터의 값에 따라 쿼리문을 동적으로 변할 수 있게 해 준다. 주로 where 절의 일보에 포함되어서 사용한다. 태그의 test 속성에는 논리 연산자를 사용한 조건식이 삽입된다. 태그 안에는 조건식이 true일 경우 실행되어야 할 쿼리문을 작성한다. 가장 흔히 사용되는 조건식은 아래 예제와 같이 파라미터의 값이 null 인지 체크하는 방식이다. SELECT * FROM board_table WHERE title LIKE '%' || #{title} || '%' OR content LIKE '%' || #{content} || '%' 위 코드에서는 content 파라미터의 값이 존재할 경우 태그 내부의 쿼리문이 실행..
-
MyBatis - DBMS 별 LIKE 문법Database/MyBatis 2022. 3. 21. 13:54
LIKE 검색 MyBatis 환경에서 파라미터를 통해 데이터를 조회하고자 하였다. 기존에 작성했었던 문법으로 LIKE 절을 사용하였으나, 원하는 결과를 얻지 못했다. 원인을 찾아본 결과 DBMS에 맞게 문자열 합치기 함수를 사용해야 한다는 것을 알게 되었다. 본인은 Oracle DBMS를 사용하면서 MySQL DBMS에 해당하는 문법을 사용한 것이었다. 아래는 DBMS의 대표적인 예인 MySQL, Oracle, MS-SQL에서 LIKE 문법을 사용하는 방법이다. MySQL SELECT * FROM table_name WHERE search_colum LIKE CONCAT('%', #{searchKeyWord}, '%') Oracle SELECT * FROM table_name WHERE search_co..