ibatis解决不确定列名方法

来源:互联网 发布:冯提莫 知乎 编辑:程序博客网 时间:2024/05/16 12:58

 
 1.
        <select id="getDimensionTableData"  resultClass="java.util.HashMap" parameterClass="java.util.HashMap" remapResults="true">
   <isEmpty property="tablename">
    select * from $tableName$
   </isEmpty>
        </select>


2.
     @SuppressWarnings("unchecked")
 @Override
 public List<Map<String, Object>> getDimensionTableData(String tableName) {
  Map<String,String> map = new HashMap<String,String>();
  map.put("tableName", tableName);
  return (List<Map<String, Object>>) getSqlMapClientTemplate().queryForList("common.getDimensionTableData",map);
 }
 
3. @Override
 public List<Map<String, Object>> getDimensionTableData(String tableName) {
  return commonDao.getDimensionTableData(tableName);
 }

 

 -------------\

<sqlMap namespace="manf_market">
    <!-- 主页面 总体指标 实体类 -->
    <typeAlias alias="getMainManfMarketTopModelList" type="com.ways.app.sales.entity.ManfMarketTopModelEntity" />
    <!-- 主页面 图 实体类 -->
    <typeAlias alias="getMainManfMarketMiddleByChartData" type="com.ways.app.sales.entity.ManfMainChartEntity" />
    <!-- 主页面 表格  实体类 -->
    <typeAlias alias="getMainManfMarketMiddleByGridData" type="com.ways.app.sales.entity.ManfMainGridByChartEntity" />
    <!-- 二级页面 图  实体类 -->
    <typeAlias alias="getSecondManfMarketChartData" type="com.ways.app.sales.entity.ManfSecondChartEntity" />
    <!-- 二级页面 表格 实体类 -->
    <typeAlias alias="getSecondManfMarketGridData" type="com.ways.app.sales.entity.ManfSecondGridEntity"/>
   

    //查单个
 <select id="getName" resultClass="java.lang.String" remapResults="true">
    <isEqual property="rankType" compareValue="0">
 SELECT DM.MANF_NAME from DM_MANF$language$ DM WHERE DM.MANF_ID = $manf$
 </isEqual>
 <isEqual property="rankType" compareValue="1">
 SELECT DB.BRAND_NAME from DM_BRAND$language$ DB WHERE DB.BRAND_ID = $manf$
 </isEqual>
 </select>

 @Override
 public String getName(Map<String, String> map) {
  List _list = (List) getSqlMapClientTemplate().queryForList("manf_market.getName",map);
  String name = _list.get(0).toString();
  return name;
    }


 1.1
   //查多个
    <!-- 二级页面 总体指标  -->
    <select id="getSecondManfMarket_Top" parameterClass="java.util.HashMap" resultClass="getMainManfMarketTopModelList" >
    with DATA as(      
    SELECT DISTINCT YEAR, MONTH_ID,
    SUM(VS.BQ_SALES) BQ_SALE,
    SUM(VS.SQ_SALES) SQ_SALE,
    SUM(VS.TQ_SALES) TQ_SALE,
    SUM(VS.BQ_YEARACC_SALES) B_YEAR,
    SUM(VS.TQ_YEARACC_SALES) T_YEAR
    </select>

 1.2
 @Override
 public ManfMarketTopModelEntity getManfMarketTopHome(Map<String, String> map) {
  ManfMarketTopModelEntity list = new ManfMarketTopModelEntity();
  if(map.get("isSecond")!=null){
   list=(ManfMarketTopModelEntity)getSqlMapClientTemplate().queryForObject("manf_market.getSecondManfMarket_Top",map);
  }else{
   list=(ManfMarketTopModelEntity)getSqlMapClientTemplate().queryForObject("manf_market.getManfMarket_Top",map);


//公共sql
 <sql id="getTimeSQL">
   BETWEEN (SELECT MIN(YEAR)|| LPAD(MIN(MONTH_ID), 2, 0) from V_STATE_SALES_SUB_MODEL VS WHERE
   VS.YEAR = (SELECT MIN(VS.YEAR) from V_STATE_SALES_SUB_MODEL VS)
   AND VS.DATA_TYPE_ID =$source$
   )
   AND
   (SELECT MAX(YEAR)|| LPAD(MAX(MONTH_ID), 2, 0) from V_STATE_SALES_SUB_MODEL VS WHERE
   VS.YEAR = (SELECT MAX(VS.YEAR) from V_STATE_SALES_SUB_MODEL VS)
   AND VS.DATA_TYPE_ID =$source$
   )
 </sql>
  
使用
<include refid="getTimeSQL"/>

0 0