ibatisは、Map(resultMap)に返されるフィールドタイプを指定します.

6457 ワード

ibatISではを定義できます.
を選択してパラメータタイプMapまたは戻り値Mapタイプを定義します.
 
呂兄から転任:http://mmddonkey.iteye.com/blog/1184069
 
	<resultMap class="java.util.HashMap" id="statistic_result">
		<result property="TOTAL" javaType="java.lang.Integer"/>
		<result property="SUCCESS" javaType="java.lang.Integer"/>
		<result property="TOTAL_MONEY" javaType="java.lang.Double"/>
		<result property="TOTAL_SUCCESS_MONEY" javaType="java.lang.Double"/>
		<result property="TOTAL_COMMISSION" javaType="java.lang.Double"/>
	</resultMap>
	
	
	<select id="statistic"  parameterClass="com.hanpeng.base.phone.model.TPhoneSale" resultMap="statistic_result" >
		<![CDATA[
		select
        count(*) 									as TOTAL,
        nvl(sum(decode(state,'0',1,0)),0) 			as SUCCESS,
        nvl(sum(money),0) 							as TOTAL_MONEY,
        nvl(sum(decode(state,'0',money,0)),0) 		as TOTAL_SUCCESS_MONEY,
        nvl(sum(decode(state,'0',commission,0)),0) 	as TOTAL_COMMISSION
		FROM T_PHONE_SALE ]]>
		<dynamic prepend="WHERE">
			<isNotEmpty prepend=" AND " property="saleNum">
				SALE_NUM =  #saleNum# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="bussinessId">
				BUSSINESS_ID =  #bussinessId# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="phone">
				PHONE =  #phone# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="areaCode">
				AREA_CODE =  #areaCode# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="phoneArea">
				PHONE_AREA =  #phoneArea# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="typeCode">
				TYPE_CODE =  #typeCode# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="money">
				MONEY =  #money# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="price">
				PRICE =  #price# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="collect">
				COLLECT =  #collect# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="commission">
				COMMISSION =  #commission# 			</isNotEmpty>
			
			<isNotEmpty prepend=" AND " property="beginTime">	
			<![CDATA[
			CREATE_DATE >  to_date(#beginTime#,'yyyy-mm-dd hh24:mi:ss') 	]]></isNotEmpty>
			<isNotEmpty prepend=" AND " property="endTime">
			<![CDATA[
			CREATE_DATE <  to_date(#endTime#,'yyyy-mm-dd hh24:mi:ss') 		]]></isNotEmpty>

			<isNotEmpty prepend=" AND " property="finishDate">
				FINISH_DATE = #finishDate# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="employeeId">
				EMPLOYEE_ID =  #employeeId# 			</isNotEmpty>
				
			<isNotEmpty prepend=" AND " property="states">	
			<iterate property="states" open="(" close=")" conjunction="OR"> 
				<isNotEqual compareValue="1" property="states[]">
					STATE=#states[]# 
				</isNotEqual>	
				<isEqual compareValue="1" property="states[]">
					STATE not in('0','-1')
				</isEqual>
			</iterate> 	
			</isNotEmpty>
			
			<isNotEmpty prepend=" AND " property="oneSide">
				ONE_SIDE =  #oneSide# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="oneEmployee">
				ONE_EMPLOYEE =  #oneEmployee# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="oneRemark">
				ONE_REMARK =  #oneRemark# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="reverse">
				REVERSE =  #reverse# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="reverseEmployee">
				REVERSE_EMPLOYEE =  #reverseEmployee# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="reverseRemark">
				REVERSE_REMARK =  #reverseRemark# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="supplyFailed">
				SUPPLY_FAILED =  #supplyFailed# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="beforeAccount">
				BEFORE_ACCOUNT =  #beforeAccount# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="afterAccount">
				AFTER_ACCOUNT =  #afterAccount# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="beforeCommission">
				BEFORE_COMMISSION =  #beforeCommission# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="afterCommission">
				AFTER_COMMISSION =  #afterCommission# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="cost">
				COST =  #cost# 			</isNotEmpty>
				
			<isNotEmpty prepend=" AND " property="operators">
				OPERATORS_CODE in
				<iterate property="operators" open="(" close=")" conjunction=",">
				 #operators[]#
				</iterate>	
			</isNotEmpty>
				
			<isNotEmpty prepend=" AND " property="clientName">
				CLIENT_NAME =  #clientName# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="clientMoney">
				CLIENT_MONEY =  #clientMoney# 			</isNotEmpty>
		</dynamic>
	</select>

resultラベルのnullValue属性はデフォルトのようです(テストされていません)