namespace
namespace 란 같은 문서내에 있는 Element의 중복을 피하기 위해 XML에 존재하는 문법이다.
sqlmap config 파일에서 useStatementNameSpaces 속성을 true로 줬을 때
쿼리를 수행할 때에는 반드시 namespace를 통해서 접근을 하게 된다.
예를 들면 user.xml 파일이 다음과 같다고 해보자
<sqlMap namespace="userinfo">
<resultMap id="user" class="net.javajigi.user.model.User">
<result property="userId" column="userId" columnIndex="1"/>
<result property="password" column="password" columnIndex="2"/>
<result property="name" column="name" columnIndex="3"/>
<result property="email" column="email" columnIndex="4"/>
</resultMap>
<select id="selectbyuserid" parameterClass="string" resultMap="user">
SELECT
USERID
, PASSWORD
, NAME
FROM USERINFO
WHERE USERID=#value#
</select>
</sqmMap>
그렇다면 실제 쿼리를 수행할 때에는 접근을 다음과 같이 한다.
queryForList("userinfo.selectbyuserid");
그러나 !!!
만일 select id 부분이 "select.by.userid" 이런식으로 점(.)을 포함하고 있다면
namespace는 무시가 된다.
즉, queryForList("userinfo.select.by.userid"); 로 수행을 하게 되면 해당 statement를
찾을수 없다고 나오게 된다.
대신에
queryForList("select.by.userid");
로 수행을 하게 되면 수행이 된다
출처 : OKJSP Java/JSP Tips
'Programming > DB' 카테고리의 다른 글
[DB] iBatis(MyBatis) + MySQL 다중쿼리 사용하기 (0) | 2015.01.20 |
---|---|
[DB] iBatis CommonDAO (0) | 2014.11.18 |
[DB] Oracle DB Link 연결 (0) | 2014.11.13 |
[DB] OracleTypeHandler - Oracle Characterset (0) | 2014.10.28 |
[DB] Eclipse와 MySQL 연동확인하기 (0) | 2014.09.22 |