▣ Framework/MyBatis🐣

    [MyBatis] 동적 쿼리 : bind [SQL 구문에 동적으로 문자열 붙여주기]

    - 동적 쿼리 : bind bind 엘리먼트는 해당 변수에 추가적인 문자열을 붙여줄 수 있다. SELECT * FROM BLOG WHERE title LIKE #{pattern} 만약 pattern의 값이 "nice"라면 아래와 같은 SQL문이 만들어진다. SELECT * FROM BLOG WHERE title LIKE '%nice%' - 참고자료 MyBatis – 마이바티스 3 | 동적 SQL 동적 SQL 마이바티스의 가장 강력한 기능 중 하나는 동적 SQL을 처리하는 방법이다. JDBC나 다른 유사한 프레임워크를 사용해본 경험이 있다면 동적으로 SQL 을 구성하는 것이 얼마나 힘든 작업인지 mybatis.org

    [MyBatis] 동적 쿼리 : foreach [마이바티스 동적 SQL 반복문]

    - 동적 쿼리 : foreach 동적 SQL에서는 collection에 대한 반복처리를 할 수 있다. collection : collection의 형태(array, list, set, map 등) index : 반복되는 구문 번호. 0부터 순차적으로 증가 item : 전달받은 값의 alias open : 구문이 시작될때 삽입할 문자열 close : 구문이 종료될때 삽입할 문자열 separator : 반복 되는 사이에 출력할 문자열 SELECT * FROM POST P #{item} Map 형태에서는 index가 key, item이 value로 사용된다. Map map = new HashMap(); map.put("T", "new title"); map.put("C", "new content"); sele..

    [MyBatis] 동적 쿼리 : trim, where, set [마이바티스 동적 SQL 조건문(2)]

    1. 동적 쿼리 : where 아래 예제는 악명높게 다양한 엘리먼트가 사용된 동적 SQL이다. SELECT * FROM BLOG WHERE state = #{state} AND title like #{title} AND author_name like #{author.name} 만약 어떤 조건에도 해당되지 않는다면? 아래와 같은 SQL이 만들어질 것이다. SELECT * FROM BLOG WHERE 두번째 조건에만 해당된다면? 아래와 같은 SQL이 만들어질 것이다. SELECT * FROM BLOG WHERE AND title like ‘someTitle’ 이런 부분의 문제를 해결하기 위해 나타난 것이 where 엘리먼트이다. where 엘리먼트는 태그에 의해 컨텐츠가 리턴되면 단순히 “WHERE”만을 추..

    [MyBatis] 동적 쿼리 : if, choose [마이바티스 동적 SQL 조건문(1)]

    1. 동적 쿼리 : if 동적 쿼리 if 문은 다른 곳에서 사용하는 것과 동일한 조건문이다. 아래의 구문은 선택적으로 문자열 검색 기능을 제공할 것이다. SELECT * FROM BLOG WHERE state = ‘ACTIVE’ AND title like #{title} 위의 구문에서 title 값이 없다면 모든 active 상태의 Blog가 리턴될 것이다. 하지만 title 값이 있다면 그 값과 비슷한 데이터를 찾게 될 것이다. 만약 title과 author를 사용하여 검색하고 싶다면? 여기서의 포인트는 각각의 if문은 개별적으로 동작한다는 것이다. SELECT * FROM BLOG WHERE state = ‘ACTIVE’ AND title like #{title} AND author_name like..

    [MyBatis] MyBatis SQL : resultMap 구문 [Map 형태로 SQL 결과값 받기]

    - MyBatis SQL : resultMap 구문 복잡한 결과 매핑을 간편하게 만들어주기 위해 만들어진 엘리먼트 resultMap 엘리먼트는 마이바티스에서 가장 중요하고 강력한 엘리먼트이다. 먼저 Map 형식을 쓰기 위해 객체 "User"를 임의로 정의하였다. package com.someapp.model; public class User { private int id; private String username; private String hashedPassword; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } publi..