본문 바로가기

Mybatis3

Mybatis 검색어(keyword) 처리 /* 검색할 필드 대상이 subject일 경우 검색할 내용 파라미터가 keyword라고 가정하면 아래와 같음. */ [MySQL] subject like CONCAT('%',#{keyword},'%') [Oracle] subject like '%' || #{keyword} || '%' [MSSQL] subject like '%' + #{keyword} + '%' 2021. 12. 30.
mybatis 비교문에서 한 글자일 경우 홑따옴표→쌍따옴표 SELECT * FROM TB_DATA WHERE 1=1 -- 비교값이 두 글자 이상일 경우에는 이렇게하면 됨. AND seq in (1,2,3,4) -- 비교값이 한 글자인 경우에는 이렇게하면 datatype (why? char) 에러가 발생. AND seq in (1,2,3,4) -- 비교값이 한 글자인 경우에는 홑따옴표로 쌍따옴표를 서로 바꾸어 String형으로 읽도록 한다. AND seq in (1,2,3,4) AND seq in (1,2,3,4,5,6,7,8) * 신입들이 종종 실수를 하길래 다루어 보았습니다. 2021. 12. 30.
mybatis XML에 쿼리자체를 동적쿼리로 적용하여 실행하고 싶은 경우 (+ibatis) Spring 5 + Mybatis 3.2.8 + Mybatis-spring 1.2.1 기준임. 일반적인 쿼리 XML 쿼리를 실행할 경우 동적 쿼리로 실행하고 싶을 경우가 있음. 예를 들어 아래와 같은 경우 1. 쿼리 자체를 아래와 같이 직접 넘겨서 실행하고 싶을 경우 String query = "SELECT 1 FROM DUAL"; 2. 위와 같이 실행할 때 문제가 되는 점. 위와 같은 형식이 되기 때문에, 홑따옴표가 붙어서 에러가 남. 3. 그렇다면, #{}가 아닌 ${}로 처리를 하면 될까? 그 부분도 마찬가지로 데이터타입으로 인해 실행되지 않는다. 4. 아래와 같이 ${}로 처리를 하되 Object로 넘거야 한다. public class SqlToolMngVO implements Serializab.. 2021. 12. 30.