[MyBatis] 동적 쿼리 : trim, where, set [마이바티스 동적 SQL 조건문(2)]
·
▣ Framework/MyBatis🐣
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)]
·
▣ Framework/MyBatis🐣
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..
[일상] Github 오픈소스 첫 기여 후기 [MyBatis, contribute 진행과정 및 후기]
·
◈ Yermi Project/오픈소스 파헤치기🪐
- Github 오픈소스 첫 기여 후기 약 한 달 전, 공부 중 MyBatis 공식문서 예제에 오류가 있는 것을 발견하여.. 프로젝트를 Fork하고 내용을 수정하여 MyBatis에 PR을 날렸었다. [일상] 주니어 개발자, Github 오픈소스에 첫 기여를 시도하다! [SQL 프레임워크 MyBatis에 기여하기] - 주니어 개발자, Github 오픈소스에 첫 기여를 시도하다! MyBatis 공식문서를 보며 공부를 하던 중, 이상한 점을 발견하였다. MyBatis 공식문서는 영어, 스페인어, 일본어, 한국어, 중국어 번체 총 yermi.tistory.com 그리고 바로 엊그제, 기나긴 고군분투 끝에 나의 PR이 병합되었다!👏🏻👏🏻 Modify the resultMaps example property (ko..
[MyBatis] MyBatis SQL : resultMap 구문 [Map 형태로 SQL 결과값 받기]
·
▣ Framework/MyBatis🐣
- 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..
[MyBatis] MyBatis SQL : SQL 구문 [SQL 구문 재사용 가능하게 정의하기]
·
▣ Framework/MyBatis🐣
- MyBatis SQL : SQL 구문 sql 엘리멘트는 다른 구문에서 재사용가능한 SQL 구문을 정의할 때 사용된다. 로딩시점에 정적으로 파라미터처럼 사용할 수 있다. inner join member using(id) inner join reply using(username) select * from board sql 구문에서도 프로퍼티 값을 사용할 수 있다. ${alias}.id,${alias}.username,${alias}.password select , from some_table t1 cross join some_table t2 프로퍼티값은 다음처럼 refid속성이나 include절 내부에서도 사용할 수 있다. ${prefix}Table from select field1, field2, fi..