[MyBatis] Java에서 쿼리문 만들기 [SQL Builder 클래스를 활용한 동적쿼리 작성]
·
▣ Framework/MyBatis🐣
- Java에서 쿼리문 만들기@SelectProvider(type = UserSqlBuilder.class, method = "buildGetUsersByName")List getUsersByName(String name);class UserSqlBuilder { public static String buildGetUsersByName(final String name) { return new SQL(){{ SELECT("*"); FROM("users"); if (name != null) { WHERE("name like #{value} || '%'"); } ORDER_BY("id"); }}.toString(); }}@SelectPro..
[Error Note] ORA-17132: 부적합한 변환이 요청되었습니다. [Error getting generated key or setting result to parameter object.]
·
◈ Study/에러노트(Error Note)🧱
- ORA-17132: 부적합한 변환이 요청되었습니다.MyBatis @Options 어노테이션에서 에러가 발생하였다.Error getting generated key or setting result to parameter object. org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get colum..
[Error Note] ORA-17004: 열 유형이 부적합합니다. [Could not set parameters for mapping]
·
◈ Study/에러노트(Error Note)🧱
- ORA-17004: 열 유형이 부적합합니다.MyBatis를 쓰는데 에러가 발생하였다. 열 유형이 부적합하다고 한다.org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='rawData.wayfId', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.a..
[MyBatis] 동적 쿼리 : bind [SQL 구문에 동적으로 문자열 붙여주기]
·
▣ Framework/MyBatis🐣
- 동적 쿼리 : 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 반복문]
·
▣ Framework/MyBatis🐣
- 동적 쿼리 : 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..