1. 程式人生 > >Mybatis需要返回的資料引數中在資料表中沒有對應的欄位,自定義實體類和resultmap作為返回值型別

Mybatis需要返回的資料引數中在資料表中沒有對應的欄位,自定義實體類和resultmap作為返回值型別

自定義實體類:因為需要做相關記錄的統計,而表中沒有統計欄位

 public class TrafficJeevesDistrictCount {
//施工top5+1  按區域

	private String districtInfo;
	
	private String districtCount;

	public String getDistrictInfo() {
		return districtInfo;
	}

	public void setDistrictInfo(String districtInfo) {
		this.districtInfo = districtInfo;
	}

	public String getDistrictCount() {
		return districtCount;
	}

	public void setDistrictCount(String districtCount) {
		this.districtCount = districtCount;
	}
    	
}

Mapper對映檔案中自定義resultmap:

   <resultMap id="trafficJeevesDistrictCount" type="cy.its.trafficMonitor.domain.model.resultmap.TrafficJeevesDistrictCount" >
    		<result column="district_info" property="districtInfo" jdbcType="VARCHAR" />
    		<result column="district_count" property="districtCount" jdbcType="DECIMAL" />
    	</resultMap>

統計的sql:top4 DISTRICT_CODE 是資料表中有的欄位,count總記錄沒有,定義相關別名就行 district_info別名對應上面mapper對映中的column

  <select id="selectTrafficJeevesByDistict" resultMap="trafficJeevesDistrictCount">
   		select * from(
   			select  district_info,district_count,ROWNUM rn
   			from
   			(select DISTRICT_CODE as district_info,count(1) as district_count
   			from T_TRAFFIC_JEEVES
   			group by DISTRICT_CODE 
   			order by district_count desc )
   			where ROWNUM <![CDATA[ <= ]]> 4
   		) where rn <![CDATA[ >= ]]> 1
   </select>