mybatis 6

[MyBatis/Error] A query was run and no Result Maps were found for the Mapped Statement

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement '###mapper'. It's likely that neither a Result Type nor a Result Map was specified. 해당 오류는 mapper에서 mybatis 부분의 resultType을 올바르게 작성하지 않아서 발생하는 것이다. resultType을 바르게 작성하면 오류가 사라진다. 나의 경우 resultType을 적지 않아서 해당 오류가 발생하였다.

[MyBatis] Mapped Statements collection does not contain value for 에러

java.lang.IllegalArgumentException: Mapped Statementscollection does not contain value for 해당 에러는 이럴 때 발생한다. 1. mapper id가 다를 경우 : mapper 파일에서 구문의 id 값과 Dao/Service에서 접근하는 id값이 다를 때 발생할 수 있다. 2. Parameter와 bean의 필드명이 틀릴 경우 3. mapper 파일에 정의된 namespace와 Dao/Service에서 호출하는 namespace가 다를 경우 4. mybatis-config 파일에 mapper가 정의되어 있지 않거나 스펠링이 틀릴 경우 5. mapper에 정의된 namespace 명칭이 같은 application 내에 중복될 경우 출처:..

[MyBatis] mapper.xml

select 구문 insert 구문 mapper [DML문일 경우] (, 도 동일하다.) - parameterType 속성: 전달받을 값이 없으면 생략 가능하다. - 는 resultType 또는 resultMap으로 결과값에 대한 타입을 반드시 지정해야 한다. - 실행 결과가 처리된 행의 개수(int 타입)이기 때문에 resultType/resultMap에 대한 속성이 필요하지 않다. - 기존에 사용하던 위치홀더가 아니라 #{필드명/변수명/map의값}으로 작성한다. resultMap ResultSet으로부터 조회된 컬럼값을 하나씩 뽑아 지정한 VO 객체에 각 필드를 담는 JDBC 코드를 줄여준다. ex) member.setMemberId(rset.getString("MEMBER_ID")); . .

[MyBatis] EncodingFilter

encodingFilter는 기존 servlet에서 request.setChracterEncoding("UTF-8");를 매번 작성해서 인코딩을 거쳐야 하는 불편함을 없애기 위해 필요하다. common 폴더에 filter 폴더를 만든 후 해당 폴더에 EncodingFilter 파일을 생성한다. @WebFilter("") - 전체에 대해 필터를 할 땐 /* 를 작성한다. - 확장자를 정해서 필터를 할 땐 *.확장자(ex. *.me)를 작성한다. - 개별적으로 필터를 할 땐 매핑 주소(ex. example.ex 또는 /example.jsp)를 작성한다.

[MyBatis] mybatis-config.xml

이 문서의 가장 위에 이 구문을 추가한다. 더보기 http://mybatis.org/dtd/mybatis-3-config.dtd"> - DTD: 이 문서 내에 있는 태그들이 configuration 태그 안에 있어도 되는지 유효성을 체크해주는 구문이다. [기본 설정] 더보기 configuration mybatis-config.xml 문서의 형식은 configuration, 즉 환경 설정이라는 것을 뜻한다. 이때 configuration 태그가 전체를 감싼다. settings mybatis를 구동했을 때 선언할 설정들을 작성하는 태그 영역이다. : 데이터가 null로 전달되었을 땐 빈 칸이 아니라 NULL로 인식한다. 그리고 이 NULL은 무조건 대문자로 작성해야 한다. typeAliases VO/DTO ..

[MyBatis] 라이브러리

프로젝트를 생성하면 src 폴더 외에 webapp 폴더도 생성된다. 이 webapp 폴더 하의 WEB-INF 폴더에다 lib 폴더(library의 약자)를 생성한다. 그 다음 lib 폴더에는 위 사진의 jar 파일들을 넣는다. 1. mybatis-3.5.10.jar : mybatis를 사용하기 위함 2. ojdbc6.jar : Oracle 10g 기준 3. taglibs-standard-compat-1.2.5.jar : jstl을 사용하기 위함(아래 4~6번도 동일) 4. taglibs-standard-impl-1.2.5.jar 5. taglibs-standard-jstlel-1.2.5.jar 6. taglibs-standard-spec-1.2.5.jar 라이브러리에 해당 파일이 없으면 제대로 실행되지 ..