날짜별 글 목록: 2010년 9월 13일

Mapped Statements collection does not contain value xxx.xxx.xxx.xxx 에러

ibatis나 mybatis에서 XML을 사용해서 쿼리문을 작성해서 쿼리를 실행한 경우, 아래와 같은 에러를 볼 수 있다.

java.lang.IllegalArgumentException: Mapped Statements collection does not contain value xxx.xxx.xxx.xxx

이 에러가 나는 겨우, 알면 쉽지만 모르는 경우 찾는게 쉽지 않았다.
이 에러는 매퍼(Mapper)에 선언한 메서드 이름과 매퍼 파일(XML)에 기술한 쿼리문(Select, Insert 등)의 이름이 같지 않아서 발생하게 된다.

위 에러가 발생시키는 예는 다음과 같다.

ex) 인터페이스 이름

public String print(String x) throws Exception;

ex) mapper.xml


<select id="prints" statementType="CALLABLE" parameterType="String" resultType="String">
        .........................
</select>

병행(Concurrent) vs 병렬(Parallel)

병행(Concurrent)과 병렬(Parallel)의 개념에 대한 내용이다. 아래 링크 내용 보면 쉽게 이해할 수 있다.

http://kevinpelgrims.com/blog/2010/08/30/parallel-programming-in-net-introduction/

위 링크의 내용은 다음과 같다.

Concurrent applications tend to create a thread that
handles a whole series of tasks. Most of the time these concurrent
applications create threads because they need an isolated process for a
concurrent event.
Parallel applications divide a process into small tasks
that are executed on seperate threads. Because the tasks are small, the
threads can be divided evenly over the processors, resulting in very
efficient use of a multi-core CPU.

아래 이미지는 병행과 병렬의 차이에 대한 좋은 설명이다.