iBatis - SqlMapConfig.xml 파일 저장 위치

Published on: 2009. 4. 8. 20:07 by louis.dev

iBatis 의 설정 파일인 SqlMapConfig.xml 이 

WebContent ->WEB-INF - >classes 폴더 밑에 있으면 iBatis가 자동으로 인식하여 로드할때 파일 명만 써주면 자동으로 읽어 온다

EX)

Reader  reader = Resources.getResourceAsReader("SqlMapConfig.xml");
this.sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
eader.close();

그러나 설정파일이 다른 곳에 있을때는 경로를 풀로 설정해야 한다.


Reader  reader = Resources.getResourceAsReader("../../.............../SqlMapConfig.xml");

(지금 이 코드-reader- 가 들어가 있는 곳으로 부터 SqlMapConfig.xml파일이 있는 위치 까지의 상대 경로


Name
Password
Homepage
Secret

iBatis - FK 일때 맵핑 시키기

Published on: 2009. 4. 8. 09:42 by louis.dev
게시판 맵핑 xml 파일: SqlMapBoard.xml
로그인 맵핑 xml 파일: SqlMapMember.xml



일때 게시판 데이터베이스 테이블에서의 USER_ID는 로그인 데이터베이스 테이블에서의 USER_ID의 FK 라고 한다면

SqlMapBoard에서의 USER_ID는 SqlMapMember의 USER_ID값을 가져와야 한다.

<SqlMapBoard.xml>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="kr.co.bit.board.dao.iBatis.Board">                                  <!-- namespace 설정 -->
<typeAlias alias="board" type="kr.co.bit.board.model.Board"/>

  <resultMap class="board" id="boardResult">
    <result column="SEQ" property="seq" />
    <result column="USER_ID"  property="member"  select="kr.co.bit.member.dao.iBatis.Member.selectMemberByUserId"/>
     <!-- kr.co.bit.member.dao.iBatis.Member 는 참조하려는  (SqlMapMember.xml) 의 네임스페이스고 그 네임스페이스의
           selectMemberByUserId라는 선언된 sql을 사용하여 member table에 있는 USER_ID를 가져와서 member(property="member")
           에 저장한다.     
select 문에서 USER_ID,USER_PW,EMAIL,USER_NAME 을 가져와서 member에 저장 하게 된다. 그래서 member.get~으로 데이터를 가져올수 있다.
      -->
    <result column="TITLE"  property="title" />
    <result column="CONTENTS"  property="contents" />
    <result column="REGIST_DATE" property="registDate" />
    <result column="READ_COUNT" property="readCount" />
  </resultMap>
 
  <resultMap class="board" id="boardAttachfileResult">
    <result column="SEQ" jdbcType="DECIMAL" property="seq" />
    <result column="USER_ID"  property="member"  select="kr.co.bit.member.dao.iBatis.Member.selectMemberByUserId"/>
    <result column="TITLE" jdbcType="VARCHAR" property="title" />
    <result column="CONTENTS" jdbcType="VARCHAR" property="contents" />
    <result column="REGIST_DATE" jdbcType="DATE" property="registDate" />
    <result column="READ_COUNT" jdbcType="DECIMAL" property="readCount" />
    <result column="SEQ" jdbcType="DECIMAL" property="attachfileList"  select="kr.co.bit.board.dao.iBatis.Board.selectListByBoardSeq"/>
   
  </resultMap>

  <select id="selectListCount" parameterClass="board" resultClass="int">
      select
          count(0)
      from
          TB_MEMBER_BOARD
  </select>
 
  <select id="selectBoard" parameterClass="int" resultMap="boardResult">
      select
          SEQ, USER_ID, TITLE, CONTENTS, REGIST_DATE, READ_COUNT
      from
          TB_MEMBER_BOARD
      where
          SEQ = #paramSeq#
  </select>
 
  <statement id="selectList" parameterClass="board" resultMap="boardResult">
        <![CDATA[
        select
            SEQ, USER_ID, TITLE, CONTENTS, REGIST_DATE, READ_COUNT
        from
            (
            select *
            from
                ( select * from TB_MEMBER_BOARD order by SEQ ASC )
            where rownum <= #startRow#
            order by SEQ desc
            )
        where rownum <= #countPerPage#
        ]]>
  </statement>
 
  <update id="selectBoardCount" parameterClass="int">
      update
          TB_MEMBER_BOARD
      set
          READ_COUNT = READ_COUNT + 1 where SEQ = #seq#
  </update>
 
  <insert id="insert" parameterClass="board">
      <selectKey keyProperty="seq" resultClass="long">
          select SEQ_TB_MEMBER_BOARD.NEXTVAL from DUAL;
      </selectKey>
      insert into TB_MEMBER_BOARD
          (SEQ, TITLE, CONTENTS, USER_ID, READ_COUNT, REGIST_DATE)
      values
          (#seq#, #title#, #contents#, #member.userId#, 0, sysdate)
  </insert>
 
</sqlMap>


<SqlMapMember.xml>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="kr.co.bit.member.dao.iBatis.Member" > 
<!-- namespace 위에서 이 이름으로 접근하여 selectMemberByUserId 으로 sql문에 접근한다-->

  <typeAlias alias="member" type="kr.co.bit.member.model.Member"/>
   
  <resultMap id="memberResult" class="member" >
    <result column="USER_ID" property="userId" />
    <result column="USER_PW" property="userPw"/>
    <result column="USER_NAME" property="userName" />
    <result column="EMAIL" property="email"/>
   <!--   <result column="REGIST_DATE" property="registDate" jdbcType="DATE" />-->
  </resultMap>
 
     <select id="selectMemberByUserId" parameterClass="String" resultMap="memberResult">
         select
             USER_ID, USER_PW, USER_NAME, EMAIL
         from
             MEMBER_BOARD
         where
             USER_ID = #userId#
     </select>
 
     <insert id="insertMember" parameterClass="member">
         insert into MEMBER_BOARD
             (USER_ID, USER_PW, USER_NAME, EMAIL, REGIST_DATE)
         values
             (#userId#, #userPw#, #userName#, #email#, sysdate)
     </insert>
    
</sqlMap>
Name
Password
Homepage
Secret

JSTL - get 방식으로 넘어온 파라미터 값을 JSTL로 받기

Published on: 2009. 4. 7. 00:20 by louis.dev
만약 get 값으로
http://127.0.0.1:8080/jstl/ifTag.jsp?name=bk

이렇게 넘어 들어오면 JSTL에서는
${param.name}
으로 받을수 있다.

param 은 파라미터값으로 넘어온 데이터를 뜻하고
name 은 그 데이터중 name이라는 이름을 갖는 데이터의 값을 가져오겠다는 뜻이다.

${param.name} 는
request.getParameter("name") 과 같다.

잘 보고 갑니다 :) | 2009.05.28 20:39 | PERMALINK | EDIT/DEL | REPLY
본문 내용은 링크와 함께 블로그에 가져 갈게요.
TasteGod | 2013.04.11 19:43 신고 | PERMALINK | EDIT/DEL | REPLY
정보 공유 감사합니다
굳은모와무른모 | 2014.12.31 09:48 | PERMALINK | EDIT/DEL | REPLY
정말 감사합니ㅣ다 ^^
Name
Password
Homepage
Secret

iBatis - 라이브러리 추가 하기

Published on: 2009. 4. 3. 14:34 by louis.dev
http://ibatis.apache.org/javadownloads.cgi
에서 다운로드

파일::

ibatis-2.3.4.726.jar
Name
Password
Homepage
Secret

JSTL - 라이브러리 다운받기

Published on: 2009. 4. 3. 12:11 by louis.dev
1.http:www.apache.org
-jakarta 선택
2.왼쪽 메뉴에서 Subprojects - Taglibs

3.왼쪽 메뉴에서 Jakarta Taglibs - download

3.Standard 1.1 Taglib 다운로드
http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi

주의::
다운로드후 압축풀면 lib 폴더에 jar파일이 있는데(jstl.jar,standard.jar) 이파일들을 라이브러리로 추가 하기 전에 몇 버젼인지 파일자체 이름에다 명시적으로 써 주어야 한다.(나중에 헷갈리지 않게 하기 위해서)
jstl.jar ->> jstl-1.1.2.jar
standard.jar ->> standard-1.1.2.jar

jsp 파일에 코드 삽입

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Name
Password
Homepage
Secret