백엔드 관련

[MyBatis] xml 오류 Invalid bound statement (not found)

jju_developer 2024. 5. 21. 13:41
728x90

안녕하세요 jju_developer입니다.

 

오늘은 일하다가 만난 간단한 이슈에 대해 알아보도록 하겠습니다~

 

 

백엔드

java spring mybatis jsp

 

C:\Users\Geunju\Desktop\GJ\SVN\프로젝트\src\main\resources\중략\OOO_SQL.xml

 

xml에 분명 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kr.co.중략.impl.OOOMapper">

    <!--OO질환 경고 알림 info-->
    <select id="selectWarningInfo" parameterType="java.util.Map" resultType="egovMap">

 

이런식으로 하다가 

갑자기

 

Invalid bound statement (not found) : 경로가 나오신적이 있으신가요?

 

혹시 소스를 복사 붙여넣기를 하셨나요?

 

xml에 mapper namespace를 잘봐보세요

 

아마도 붙여넣기 했던 경로가 있을수도 있습니다!

 

경로를 뭐로 해야하는지 모르시겠다구요?

아시는 분들은 경로 확인 후 수정해주시고,

 

모르시는 분들을 위해서 간략히 설명드리겠습니다~!

@Mapper("jjuMapper")
public interface JjuMapper {

    /**
     * OO질환 경고 알림 현황 조회
     * @param
     * @return
     * @exception Exception
     */

    EgovMap selectWarningInfo(Map<String, Object> vo) throws Exception;

 

여기 Mapper인터페이스와 위에 설명된 xml에 기재해 놓은 selectWarning 쿼리가 있습니다.

 

Mapper 인터페이스에는 @Mapper("무슨매퍼")다 라고 정의를 해주었죠?

 

XML에 내가 어디서 쓰겠다라는 정의를 mapper namespace에 하게 되는 겁니다.

 

내가 만든 Mapper이름과 동일하게 지정을 해줘야 내 쿼리문을 어디서 쓰게 할것인지 정확해지겠죠?

 

따라서 Mapping 파일에 있는 SQl을 자바 인터페이스를 통해 호출할 수 있도록 해주는 것 입니다.

 

혹시라도 코딩하시다가,

 

Invalid bound statement (not found) : 경로 --- 라는 것을 보시게 된다면,

 

너가 작성한 xml 쿼리문이 

<mapper namespace="jju프로젝트 쓰일 경로이름">

 

위 경로에서 쓴다고 했는데

 

실제로 경로로 가보니

@Mapper("jjuMapper")
public interface JjuMapper {

}

 

이런것이 정의되어있지 않더라 입니다~!

Invalid bound statement (not found) 

 

그럼 오늘도 수고하셨습니다!

728x90