Mybatis传入参数map,读取map<原创>

如果想输出多张表中的内容或者不是一张表里面的内容(聚集函数),而且又不想resultMap成一个实体,那就用map吧(研究了一下午的成果...)

<select id="getUaMapByTimestamp" parameterType="hashmap"  resultType="hashmap">  
      select tName=t.type_Name, countName=count(t.type_Name)
      from Fault f, device_info d ,device_type t
      where f.handle_status = 1 and f.repair = 0 and f.device_id = d.device_id and t.type_id = d.type_id
      <if test="statDateFrom != null">and f.happen_time <![CDATA[>=]]> #{statDateFrom}</if>
     <if test="statDateTo != null">and f.happen_time <![CDATA[<=]]> #{statDateTo}</if>
       group by t.type_Name 
    </select>

这样就能是搜索结果变成hashmap类型(别问我题目是map,怎么在讲hashmap...)

java代码:

@Repository
public class FaultDao extends AbstractBasicDaoImpl<Fault, Long> implements IFaultDao {

    private static final String    NAMESPACE = "com.device.entity.Fault";
    
    protected SqlSession mySqlSession;
    
    
    public SqlSession getMySqlSession() {
        return mySqlSession;
    }

    @Autowired
    public void setMySqlSession(SqlSession mySqlSession) {
        this.mySqlSession = mySqlSession;
    }


    @Override
    protected String getNamespace() {
        return NAMESPACE;
    }


    @Override
    public List<HashMap> findStatisticDevicetype(Map testMap) {
        List<HashMap> aa = new ArrayList<HashMap>();
        aa = mySqlSession.selectList("getUaMapByTimestamp",testMap);
        return aa;
    }

}

关键部分是声明和注入本类自己的sqlSession实例,由于本类继承AbstractBasicDaoImpl<Fault, Long>,而AbstractBasicDaoImpl<Fault, Long>又继承相关类,如果不自己声明sqlSession实例的话,默认会调用父类是sqlSession实例,而由于类之间的继承关系,最后selectList的类型会变成List<Fault>!!!

一个下午的小成果,给自己一朵小红花❀奖励~

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值