zoukankan      html  css  js  c++  java
  • ibatis 用HashMap解决Ibatis未知列名和列数的查询结果的resultClass映射

    sqlMap映射文件中(注意代码中的remapResults=”true”必须要加,因为加了以后才能适应每次变化的列名和列数):

    <selectid=”getDynamicTable” resultClass=”java.util.HashMap” remapResults=”true”parameterClass=”java.lang.Integer”>
        select t.* from some_table t where t.status = 1
    </select>

    其中“selectt.* from some_table t where t.status = 1”这段sql查询结果的列数和列名都是不固定的

    Dao层实现类:

    Listtest = this.getTemplate().queryForList(”Article.getDynamicTable”, newInteger(1));

    得到的test是一个list的结果集,里面每一个元素都是一个Map对象,Map结构如下:

    {STATUS=1,NOTE=12, URL=http://www.tc84.cn/,SQUENCE=12, ID=327105}

    其中“STATUS”“NOTE”这些key就是数据库的列名,等号后面的就是value,将这个list遍历,然后再遍历出Map里面的数据,就可以实现我们的要求了

    -------------------------------------


    <statementid="getTest" resultClass="java.util.HashMap">
    SELECT ID, NAME FROM TEST
    </statement> 

    public Map getMapTest(){
       List testList =(Student)sqlMap.queryForList("getTest",null);
       Map result = new HashMap();
       for(int i=0; i<testList.size(); i++){
           Map tmp = (Map)testList.get(i);
          result.put(tmp.get("id"),tmp.get("name"));
       }
    }



  • 相关阅读:
    适配器模式(16)
    状态模式(15)
    用反射技术替换工厂种的switch分支(14)
    2017年目标与规划
    抽象工厂模式(13)
    观察者模式(12)
    建造者模式(11)
    TCP 可靠传输与流量控制的实现
    TCP报文段的首部格式
    TCP可靠传输的工作原理
  • 原文地址:https://www.cnblogs.com/fyq891014/p/3294814.html
Copyright © 2011-2022 走看看