Mybatis需要返回的資料引數中在資料表中沒有對應的欄位,自定義實體類和resultmap作為返回值型別
阿新 • • 發佈:2018-12-14
自定義實體類:因為需要做相關記錄的統計,而表中沒有統計欄位
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>