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
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 |