마이바티스

    myBatis 3) 쿼리에 파라미터에 객체 전달 시 프로퍼티 찾지 못할 때

    서블릿 / 스프링프레임워크 프로젝트를 오가며 바티스 쿼리 매퍼를 작성하다보니, 아래와 같은 사항들을 알게되어 정리해본다. 공식문서에서 해당 내용을 찾기 힘들었는데, 같은 문제로 애먹는분들에게 도움이 되면 좋겠다. myBatis 3 매퍼 SQL 프라그먼트에 parameter 를 전달할때, 서블릿 프로젝트로 진행시, DAO에서 파라미터에 VO를 담아준다면? fragment에서 받을 때 Map.property 혹은 VO.property 라고 명시/사용 해줘야한다. AND title like CONCAT('%',#{searchCriteria.keyword},'%') 스프링 프레임워크 레포지토리에서 VO(DTO)를 파라미터로 넘겨줄 시 반대로 명시할 필요 없이 필드명만 입력해줘도 된다. AND title like..

    myBatis 3 쿼리문에 parameter 문법 (${}, #{})

    마이바티스를 이용하면 SQL문에 파라미터를 쓸 수 있다. myBatis 공식문서에 Parameters 섹션에 기술된 #{} 과 String substitution의 ${} 이 그것들이다. 예를들어, SELECT * FROM article WHERE article_id = #{articleId} 위와 같이 사용하거나 WHERE article_id = '${articleId}' 와 같이 사용하면 파라미터를 전달해줄 수 있다. @Mapper public interface ArticleMapper { public List selectSearchArticles(@Param("articleId") String articleId); } 위 매퍼인터페이스의 selectSearchArticles 메서드를 통해 스트링 형..