본문 바로가기

프로그래밍/스프링 프레임워크

There is no statement named xxxx in this SqlMap 에러 해결법

Spring + ibatis jboss로 연동하여 DB select문, insert문, update문, delete문 등을

JAVA로 DB연결부터 시작하여 DB SQL문까지 구구절절 쓸 필요없이 XML로 SELECT문 등을 따로 적어넣고

사용할수가 있다.

 

그래서 필자는 구현중에 There is no statement named xxxx in this SqlMap 이러한 에러가 나와, 첫대면을 하게되었는데...?

영어 실력이 부족하지만;; 대충 맞춰보면...

SqlMap 안에 기재된 이름인 xxx가 없어서 존재하지않아 나는에러이다...

 

자세한 소스 내용은 제쳐두고, 간단하게만 소스 공개하도록 하겠다. 한줄..

스프링 관련책이나, jboss 5 책을보면서 이소스를 보면 무슨의미인지 알것이다.

 

java dao 부분에 구현된 소스 일부 (빨간색 소스 한줄이 xml에있는 sql를 실행시켜주는 부분이다.)

getSqlMapClientTemplate().queryForObject("com.sec.test.mo.selectList");

 

selectList.xml 구현부분

<sqlMap namespace="com.sec.test.mo">

    <select id="selectList" resultClass="java.lang.Integer" parameterClass="String">
        Select COUNT(*)
        FROM TCST_WEB_LOG
    </select>

 

sqlMap-config.xml 구현부분

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig     
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"           
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>

     <sqlMap resource="com.sec.test.mo/selectList.xml"/>
</sqlMapConfig>

 

// sqlMap resource 부분에 xml 파일 패키지부터 이름까지 지정이 안되어있으면

   There is no statement named xxxx in this SqlMap  에러가 발생하게된다.

   에러의 의미와도 맞게 sqlMap이 정의되어있지않아, 나는에러이다.

 

이게 아니면 dao 구현부분에서 queryForObject("com.sec.test.mo.selectList");

() 안에 내용이 잘못되어 문제를 일으킬수 있다.