본문 바로가기
Framework/ibatis

queryForList

by windrises 2007. 12. 17.
ibatis: get the table list

queryForList(arg0,arg1)
queryForList(arg0,arg1,arg2,arg3)
arg0 : query id.
arg1 : parameter(Map)
arg2와 arg3는 mysql의 limit과 같은 방법으로 범위를 지정할 수 있는 파라미터이다.

[XML]
<typeAlias alias="BOName" type="package.BOClassName"/>

~

<resultMap class="BOName" id="select-BOName-param">
<result property="boField" column="dbColumnName">
.
.
</resultMap>

~

<select id="ba.selectBoardList" parameterClass="java.util.Map" resultMap="select-BOName-param">
<![CDATA[
   select * from 보드명
<!-- equals start-->
<isNotEqual compareValue="-1" property="STEP">
   VALUES(#BOARD_TYPE#, #PWD#, #TITLE#, #CONTENTS#, 'N', 0, #REG_ID#, NOW(), #UPT_ID#, NOW(), #REF#, #LEVEL#, #STEP#)
  </isNotEqual>
  <isEqual compareValue="-1" property="STEP">
   SELECT #BOARD_TYPE#, #PWD#, #TITLE#, #CONTENTS#, 'N', 0, #REG_ID#, NOW(), #UPT_ID#, NOW(), #REF#, #LEVEL#, IFNULL(MAX(STEP), 0) + 100
   FROM BOARD
   WHERE BOARD_TYPE = #BOARD_TYPE#
  </isEqual>
<!-- equals end-->
<!-- where start-->
  <dynamic prepend="WHERE">
      <isNotNull prepend="and" property="adminUid">
       admin_uid = #adminUid#       
      </isNotNull>
      <isNotNull prepend="and" property="displayName">
       display_name like '%$displayName$%'
      </isNotNull>
      <isNotNull prepend="and" property="viewUrl">
          view_url like '%$viewUrl$%'
      </isNotNull>     
  </dynamic>

<!-- where end-->
]]>
</select>
검색이 가능하도록 WHERE절을 동적으로 처리한다.



[DAO]
Map<String,String> params = new HashMap<String,String>;
List<BOClassName> list = (List<BOClassName>)queryForList("ba.selectBoardList",params);


[주의]
* resultmap에서 사용할 bo는 기본생성자를 가져야 한다...
  뭣모르고 들이댔다가 3시간만에 해결했다.. 아우씨,
  이대 발생한 익셉션은.. 그 사실을 말해주지 않는다...
 
--- The error occurred in com/rf/board/db/dao/sqlmap/sql/BoardAdmin.xml. 
--- The error occurred while applying a result map. 
--- Check the BoardAdmin.select-BoardList-result. 
--- The error occured while instantiating the result object 
--- Cause: com.ibatis.common.exception.NestedRuntimeException: JavaBeansDataExchange could not instantiate result class.  Cause: java.lang.InstantiationException: com.rf.board.db.bo.BoardAdmin

'Framework > ibatis' 카테고리의 다른 글

조건비교후 서로다른 SQL문  (0) 2008.08.27
동적 쿼리문 생성  (0) 2008.07.22
ibatis 튜토리얼_번역  (0) 2007.12.17