在开发中遇到这样的问题:前端展示的时候,需要展示'日访问速率'。日访问速率=日访问量/(24*3600),数据库中存在日访问量,而不存在日访问速率。 在ibatis的做查询排序的时候,需要新的domain、修改sql。这个时候,ibatis的extends发挥了用处。

代码如下:增加sumNumDayAverage字段

 
  
  1. public class HummockClientStatExt extends HummockClientStat { 
  2.     private static final long serialVersionUID = 3307034127892719406L; 
  3.     private double            sumNumDayAverage; 
  4.  
  5.     public double getSumNumDayAverage() { 
  6.         return sumNumDayAverage; 
  7.     } 
  8.  
  9.     public void setSumNumDayAverage(double sumNumDayAverage) { 
  10.         this.sumNumDayAverage = sumNumDayAverage; 
  11.     } 
  12.  
  13.     /* 
  14.      * @see java.lang.Object#toString() 
  15.      */ 
  16.     @Override 
  17.     public String toString() { 
  18.         return "HummockClientStatExt [sumNumDayAverage=" + sumNumDayAverage + super.toString() 
  19.                 + "]"
  20.     } 
  21.  

ibatis的extends用法如下:extends="HummockClientStatResult"

 
  
  1. <resultMap id="HummockClientStatExtResult" 
  2.         class="com.alibaba.hummock.console.model.HummockClientStatExt" extends="HummockClientStatResult"> 
  3.         <result property="sumNumDayAverage" column="sum_Num_Day_Average" /> 
  4.      
  5.     </resultMap> 

 

 
  
  1. <parameterMap class="java.util.Map" id="paramQueryMap"> 
  2.     <parameter property="appId" /> 
  3.     <parameter property="listValue" /> 
  4.     <parameter property="sort" /> 
  5.     <parameter property="dir" /> 
  6.     <parameter property="begin" /> 
  7.     <parameter property="increment" /> 
  8. </parameterMap> 
  9.  
  10. <select id="getClientStat" resultMap="HummockClientStatExtResult" 
  11.     parameterMap="paramQueryMap"> 
  12.     SELECT 
  13.     <include refid="columns" />sum_Num/(24*3600) as sum_Num_Day_Average 
  14.     <![CDATA[ 
  15.         FROM client_stat  
  16.     ]]> 
  17.     <dynamic prepend="where"> 
  18.         <isNotEmpty prepend="and" property="appId"> 
  19.             app_Id = #appId# 
  20.         </isNotEmpty> 
  21.         <isNotEmpty prepend="and" property="listValue"> 
  22.             list_value = 
  23.             #listValue# 
  24.         </isNotEmpty> 
  25.         <isNotEmpty prepend="order by" property="sort"> 
  26.             $sort$ $dir$ 
  27.         </isNotEmpty> 
  28.     </dynamic> 
  29.     limit #begin#,#increment# 
  30. </select>